1. 程式人生 > >mysql case when多條件同時滿足的多個and組合巢狀的情況,判斷空is null --- 系列一

mysql case when多條件同時滿足的多個and組合巢狀的情況,判斷空is null --- 系列一

case when不支援下面2這種寫法(我已經測試過了,大俠如有好辦法,麻煩分享):

情況1:未加括號

select 
wf.fid id,
CASE 
WHEN wf.Fstep = 1 AND wf.Fstatus = 'Reject' and wf.Foper_reason IS NULL THEN '未填寫駁回理由'
WHEN wf.Fstep = 1 AND wf.Fstatus = 'Reject' and wf.Foper_reason IS NOT NULL THEN wf.Foper_reason
END reason,
wf.Fcreate_time time
from t_work_flow wf 
order by time desc;

情況2:加括號

select 
wf.fid id,
CASE 
WHEN (wf.Fstep = 1 AND wf.Fstatus = 'Reject') and wf.Foper_reason IS NULL THEN '未填寫駁回理由'
WHEN (wf.Fstep = 1 AND wf.Fstatus = 'Reject') and wf.Foper_reason IS NOT NULL THEN wf.Foper_reason
END reason,
wf.Fcreate_time time
from t_work_flow wf 
order by time desc;

更改後就可以了

SELECT id, 
CASE when reason is null THEN '未填寫駁回理由' 
ELSE reason 
END reason,
time from 
(
select 
wf.fid id,
CASE 
WHEN wf.Fstep = 1 AND wf.Fstatus = 'Reject' and wf.Foper_reason IS NULL THEN '未填寫駁回理由'
WHEN wf.Fstep = 1 AND wf.Fstatus = 'Reject' and wf.Foper_reason IS NOT NULL THEN wf.Foper_reason
END reason,
wf.Fcreate_time time
from t_work_flow wf
) result
order by time desc;

相關推薦

mysql case when條件同時滿足and組合情況判斷is null --- 系列

case when不支援下面2這種寫法(我已經測試過了,大俠如有好辦法,麻煩分享): 情況1:未加括號 select wf.fid id, CASE WHEN wf.Fstep = 1 AND wf.Fstatus = 'Reject' and wf.Fope

mysql case when條件同時滿足and組合情況判斷is null --- 系列

方法一: SELECT id, time, type, CASE when (reason is null or reason = '') and type = '駁回' THEN '未填寫駁回理由' ELSE reason END reason from wo

MySql查詢結果過濾同時滿足條件的資料

建立學生表,內有欄位 姓名,年齡,性別,年級  ,(這裡我只建立到三年級) 備註 :性別 男/女,,年級 :學前班/一到六年級,,姓名年齡不限 要求: 查詢一年級的男生和二到五年級的所有學生 對於以上的查詢語句該編寫SQL select * from student where

mysql查詢:同一個欄位滿足條件的對應欄位

比如查詢patient_id,對應的code_id分別等於1,2,3 select distinct patient_id from qs_patient_code WHERE code_id = 1 or code_id = 3 or code_id = 2

2017.7.14 使用case when和group by將條資料合併成一行並且根據某些列的合併值做條件判斷來生成最終值

1.效果演示 (1)不做處理 (2)合併多列,並對後四列的值做並集處理 2.SQL語句 (1)不做處理 1 SELECT 2 C .fd_tenantid AS fdTen

一個欄位同時滿足條件的查詢

構造一個如下圖所示的表: №_001: 建立表 tb_a DROP TABLE tb_a CASCADE CONSTRAINT; COMMIT; CREATE TABLE tb_a( model_name varchar2(10), parts_name varchar2

pandas 篩選資料同時滿足條件

top10_dire = df_dire.groupby('dire').id.agg('count').sort_values(ascending=False)[:10] ## top10_dire

MySql case when then 同表連線 時間判斷 sql語句

SELECT info.uuid AS carUuid, info.vehicle_plate_number AS carNumber, obd.device_id AS obdDeviceId, //null替換為0 COALESCE(obd.speed,0) AS obdSpeed, obd.updat

grep 同時滿足關鍵字、滿足任意關鍵字和排除關鍵字

排除 計數 not uniq 排序 word note cut 多個 1. 同時滿足多個關鍵字 grep "word1" file_name | grep "word2" | grep "word3" 2. 滿足任意關鍵字 grep -e "word1" -e "word2

grep 同時滿足關鍵字和滿足任意關鍵字 grep 同時滿足關鍵字和滿足任意關鍵字

grep 同時滿足多個關鍵字和滿足任意關鍵字   grep 同時滿足多個關鍵字和滿足任意關鍵字 ① grep -E "word1|word2|word3"   file.txt

grep 同時滿足關鍵字和滿足任意關鍵字

href class grep -E 滿足 之一 多個 small targe content grep 同時滿足多個關鍵字和滿足任意關鍵字 ① grep -E "word1|word2|word3" file.txt 滿足任意條件(word1、wor

Mysql case when(條件判斷) 簡單用法

在編寫 sql 語句時,我們可能需要對欄位值進行判斷,比如 null 值將結果賦值為 0 等,這樣就不要在程式碼中再進行迴圈判斷了. 比如這張單表,我們需要在查詢結果中將 name 為 '大彬' 的值重新定義了 '角色1',將不是 '大彬' 的值定義為 角色2 ,status = 1 定義

mysqlmysql case when實現不同條件查詢

程式碼示例 SELECT SUM(CASE WHEN e.cost_audit_type = 1 AND date_format(e.cost_audit_time, '%Y-%m') = '2

mysql case when & concat & SUBSTRING_INDEX & not & having 使用的小case

logs war rom sub 獲取 () then 來源 ted 1. 代碼 SELECT a.id, a.activity_name, ( CASE WHEN a.activity_end_time >

Mysql Case when

body ali 什麽事 nio key 維表 相對 單純 popu Case具有兩種格式。簡單Case函數和Case搜索函數。 --簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN ‘2‘ THEN ‘女‘ELSE ‘其他‘ E

Sumifs函數條件求和的9實例

項目 jpg blog s函數 a10 [] targe 允許 class 第一部分:sumifs函數用法介紹 excel中sumifs函數是Excel2007以後版本新增的多條件求和函數。 sumifs函數的語法是:SUMIFS(求和區域, 條件區域1,條件1, [條件區

Excel中IF函式的條件判斷與LOOKUP函式的聯合應用

1、IF函式的多條件判斷 當IF函式要對多個條件進行判斷時,除了AND和OR函式(前面文章介紹),更多的情況需要用到IF函式的巢狀。 例如要對學生的分數進行評級,當分數小於60分時,不及格;分數大於等於60分小於70分時為及格,以此類推。 選擇單元格—輸入公式=IF(B2 2、LOOKUP函式基礎應用

Mysql case when end 的巧妙使用

SELECT m.template_id template_id, nvl(m.fixed_fee,0) fixed_fee,

Mysql case when then操作

表資料: 按天分型別統計資金總量: SELECT dt,SUM(hold_amt_day), SUM(CASE WHEN `type`=1 THEN hold_amt_day END) AS a1,  SUM(CASE WHEN `type`=2 THEN hold_

mysql case when語句

表的建立   CREATE TABLE `lee` ( `id` int(10) NOT NULL AUTO_INCREMENT,  `name` char(20) DEFAULT NULL,  `birthday` datetime DEFAULT NULL,