sql中的where後面使用case when
有這樣一段sql文。
select B.bCol_1,B.bCol_2,C.cCol_1
from TBL_B B left join TBL_C C
on B.bCol_Key = C.cCol_Key
where B.bCol_Time < 'xxxx'
現在需要擴充套件功能,就是隻有當表B.bCol_Flag=0時,where的條件改為C.cCol_Time < 'xxxx',其他的情況保持不變。不知道where裡面能不能再用case when或者還有其他的,如果能用的話,怎麼個寫法。
因為這個是擴充套件功能,而且這段程式碼是在Procedure中的,所以不太能用引數和if…else控制來寫。
這樣就可以了 select B.bCol_1,B.bCol_2,C.cCol_1 from TBL_B B left join TBL_C C on B.bCol_Key = C.cCol_Key where (B.bCol_Time < 'xxxx' and B.bCol_Flag<>0) or ( C.cCol_Time < 'xxxx' and B.bCol_Flag=0)
相關推薦
sql中SUM與case when的組合使用
SELECT SUM(case WHEN sex=1 then 1 else 0 end )as '男生',SUM(case when sex =2 then 1 else 0 end )'女生'FROM asex這句sql輸出的就是男女生的人數(1代表男生,2代表女生),S
mysql中LOCATE和CASE WHEN...THEN...ELSE...END結合用法
else case put asdf span 項目 oos bstr col 之前項目中需要寫一個sql,就是查出某個調研詳情中,選A答案,B答案,C答案...F答案的人各有多少人,這個sql也是費了很大的力氣才寫出來,故記下來,方便以後使用。 其中tbl_researc
sql語句if,case when
account amount else order clas class pre select acc 1.if 表達式:IF( expr1 , expr2 , expr3 ) expr1條件,條件為true,則值是expr2 ,false,值就是expr3 例: SE
關於hibernate中hql語句 case when的寫法
case when select rom org nat where for code when java hql case when的用法 if(null == sorter){ hql.append(" order by m.mDate des
ORACLE sql 執行順序、Case When 、檢視執行的sql語句
標準的 SQL 的解析順序為: (1) FROM 子句, 組裝來自不同資料來源的資料 (2) WHERE 子句, 基於指定的條件對記錄進行篩選 (3) GROUP BY 子句, 將資料劃分為多
sql中where加if
SELECT * FROM T_ORD WHERE IF ( xd__T_ORD.LOG_STAT_CD >= 3050.160,-- 條件 &n
SQL中where與having的區別
導讀 1.where和having的區別 2.聚合函式和group by 3.where 和having的執行順序 4.where不能使用聚合函式、having中可以使用聚合函式 1.where和having的區別 whe
SQL中 where 子句和having子句中的區別
前言: 1.where 不能放在GROUP BY 後面 2.HAVING 是跟GROUP BY 連在一起用的,放在GROUP BY 後面,此時的作用相當於WHERE 3.WHERE 後面的條件中不能有聚集函式,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是對查詢結果的一
sql:常用:case when
sql只查一次未優化 SELECT * FROM ( SELECT &nb
mybatis動態sql中where、set、if 、for迴圈使用
where-if <select id="listBySearch" resultType="java.lang.Integer"> SELECT id FROM hospital <where> <if
sql使用update set case when 實現一條語句批量更新
比如有一張user表 有欄位username(使用者名稱),status(狀態) 表中有三條資料 username = "張三" status = 1,username = "李四" status = 0, username = "王五" status = 1現在要將u
sql控制流程語句case when/if/ifnull/null if
select *,case t.name when 1 then '男' when 2 then '女' end as sexfrom tt t 結果: 一. 控制流程函式 1.CASE value WHEN [compare-value]THEN result [WHEN [c
sql update set使用case when語句
1、 update TD_XXXsetdjyzmdm=null,djyzmsj=null,DLCS= case when DLCS is null then 1 else DLCS+1 end whe
SQL中Where和Having的區別---正確理解
Where和Having到底有啥區別,相信很多人都有過困擾,本人之前也是似懂非懂,前幾天接了阿里的一個電話面試,資料庫的部分就被這個問題給難倒了,支支吾吾只說了“在不能用where的時候就應該選擇having”,其他的啥也不會了。 今天寫sql時又用了having(雖然還是
sqlserver中查詢語句case when判斷的用法
今天幫同事統計表格,給我了個sql語句,又給我了份excel模板,但是sql語句查詢出來的結果和模板對不上,這導致還得人工一條一條的找這些資料,然後手動填寫結果...這太tm麻煩了... excel模板如下(簡化版): 機構\日期 5月13日 5月15日 某某機構1 是 否
SQL SERVER 條件查詢 Case When結構
1.Sql Server 行轉列 , select count(*) as TotalCount,SchoolId,Type, row_number()over(order by Type asc) as RowIds from ALL_UserLog g
SQL中where in的用法以及mybatis執行查詢語句,可以在plsql中查詢資料,但是在程式中查詢不到
首先我們要知道where是什麼:一個判斷符。在SQL操作中,控制只選擇指定的行。 in的其實歸類於特殊的比較運算子 expr1 between expr2 and expr3:表示expr1的值在expr2和expr3之間 expr in(expr2,expr3,expr4,
MYSQL中IF, IFNULL, CASE WHEN的使用
CASE WHEN兩種寫法 1.SELECT CASE WHEN status=1 THEN 'status1' -- 當status=1時,返回值為狀態1 WHEN status=2 THEN 'status2' -- 當status=1時,返回值為狀態1 ELSE '
SQL中WHERE 變數 IS NULL 條件導致全表掃描的問題
今天在評審接手的專案中的儲存過程時,發現存在大量的在條件裡判斷變數是否NULL的寫法,如:SET @SQL = 'SELECT * FROM Comment with(nolock) WHERE 1=1 And (@ProjectIds Is Null or Pro
sql中的where後面使用case when
有這樣一段sql文。 select B.bCol_1,B.bCol_2,C.cCol_1 from TBL_B B left join TBL_C C on B.bCol_Key = C.cCol_Key where B.bCol_Time < 'xxxx' 現