⑴ sql文的where中使用case when時,能不能用like 若能,請用簡單的代碼演示一下 謝謝!
Select
type = case when column1 like '%_abc_%' then 'a'
when column2 like '%GGG%' then 'b'
when column1 like '%_def_%' then 'c'
else 'others' end,
column1,
column2
from table1
where 1=1
⑵ Sql文的where中使用case when
這樣就可以了
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中where後面用case的問題
set @bzdw = isnull(@bzdw,』')
where <其他條件 and>
(@wldw=『』 or @wldw = wldw)
⑷ sql where 後面跟 case 的問題
SQL 幫助文檔的例子
SELECT Category =
CASE type
WHEN 'popular_comp' THEN 'Popular Computing'
WHEN 'mod_cook' THEN 'Modern Cooking'
WHEN 'business' THEN 'Business'
WHEN 'psychology' THEN 'Psychology'
WHEN 'trad_cook' THEN 'Traditional Cooking'
ELSE 'Not yet categorized'
END,
CAST(title AS varchar(25)) AS 'Shortened Title',
price AS Price
FROM titles
WHERE price IS NOT NULL
ORDER BY type, price
COMPUTE AVG(price) BY type
GO
⑸ sqlserver的sql語句里能在where條件里用case when嗎,如果可以,請給個簡單的例子。
1>
2> SELECT * FROM t_test_sub;
3> GO
id main_id value
----------- ----------- ----------
2 12 TWOTWO
11 21 AAAA
12 22 BBBB
13 NULL CCCC
14 NULL DDDD
15 NULL EEEE
(6 行受影響)
1> UPDATE t_test_sub set value = 'test' WHERE case when id>10 then 1 else 0 end
= 1
2> go
(5 行受影響)
1> SELECT * FROM t_test_sub;
2> go
id main_id value
----------- ----------- ----------
2 12 TWOTWO
11 21 test
12 22 test
13 NULL test
14 NULL test
15 NULL test
(6 行受影響)
1>
⑹ sql where case when then請在這里概述您的問題
case
when最後要輸出一個值,多用於select列表中,如果用在where中,就要看你能否正確輸出值了
很明顯你的語句
(case
when
end)=最後沒有響應的值出現,就不對了唄
⑺ SQL語句中case,when,then的用法
用法如下:
復制代碼
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE
WHENs.s_sex='1'THEN'男'
WHENs.s_sex='2'THEN'女'
ELSE'其他'
ENDassex,
s.s_age,
s.class_id
FROM
t_b_students
WHERE
1=1
這兩個結果是一樣的:
需要注意的一點是,Case函數只返回第一個限定值,其餘的Case將被自動忽略。
(7)sql語句where中case擴展閱讀:
Case有兩種格式:簡單函數和Case搜索函數。
簡單的例子功能:
CASEsex
WHEN『1』THEN『男』
WHEN『0』THEN『女』
ELSE『其他』END
Case搜索函數:
CASEWHENsex=『1』THEN『男』
WHENsex=『0』THEN『女』
ELSE『其他』END
顯然簡單的Case函數天生簡潔,但它們只適用於這種單欄位單值比較,而Case搜索函數具有適用於所有比較用例的優勢。
另一個需要注意的問題是,在Case函數滿足了某個條件之後,其餘的條件將被自動忽略,這樣即使滿足了多個條件,在執行過程中也只能識別第一個條件。
當使用CASEWHEN時,您可以將其視為沒有欄位名的欄位,欄位值是有條件的,並且在需要使用欄位名時可以使用as來定義別名。
⑻ SQL語句中Case 的用法
Select Case 語句在有多個可能的條件必須被檢查時使用。與 If 語句不同,Select Case語句在找到匹配的Case 表達式並執行了Case 表達式和下一個Case 表達式之間的語句後將立即跳出。如果沒有匹配的Case 表達式,將執行其它語句。
Case Else 與lse 的意義相同。
Case 語句能接受各種類型的(作為判斷條件的)表達式。表達式可以是單一值、由逗號分隔的一組值、能返回值的函數、用"To"關鍵字指定的值的范圍或者使用"Is"關鍵字對等式或不等式進行測試。您可以連接不同類型的不同表達式,只要將它們用逗號分開即可。
⑼ sql server2008中where後面跟 case 或者 別的判斷都行
where 後面加上CASE是可以的,但要注意括弧,表示是一個訂算結果。
示例如下:
CREATE TABLE #temp
(
id INT IDENTITY(1, 1) ,
name VARCHAR(20) ,
startYear INT ,
startMonth INT
)
INSERT INTO #temp
SELECT 'z' ,
'2010' ,
'12'
UNION ALL
SELECT 'e' ,
'2011' ,
'11'
UNION ALL
SELECT 'a' ,
'2011' ,
'2'
UNION ALL
SELECT 'b' ,
'2011' ,
'5'
UNION ALL
SELECT 'c' ,
'2011' ,
'10'
UNION ALL
SELECT 'd' ,
'2011' ,
'7'
--查詢早於等於指定日期的數據
DECLARE @condition VARCHAR(6)
SET @condition = '201110'
SELECT *
FROM #temp A
WHERE ( CASE WHEN LEN(A.startMonth) = 1
AND A.startMonth != 0
THEN CAST(( CAST(startYear AS VARCHAR(4)) + '0'
+ CAST(A.startMonth AS VARCHAR(1)) ) AS DATE)
WHEN LEN(A.startMonth) = 2
THEN CAST(CAST(startYear AS VARCHAR(4))
+ CAST(A.startMonth AS VARCHAR(2)) AS DATE)
END ) <= CAST(@condition AS DATE)
DROP TABLE #temp
⑽ SQL中case,when,then,else的用法是什麼
用法:
1、第一種寫法:
復制代碼
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE
WHEN s.s_sex = '1' THEN '男'
WHEN s.s_sex = '2' THEN '女'
ELSE '其他'
END as sex,
s.s_age,
s.class_id
FROM
t_b_student s
WHERE
1 = 1
2、第二種寫法
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE s.s_sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END as sex,
s.s_age,
s.class_id
FROM
t_b_student s
WHERE
1 = 1
兩個運行結果一樣:
有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
(10)sql語句where中case擴展閱讀:
Case具有兩種格式:簡單Case函數和Case搜索函數。
簡單Case函數:
CASE sex
WHEN『1』THEN『男』
WHEN『0』THEN『女』
ELSE『其他』END
Case搜索函數:
CASE WHEN sex=『1』THEN『男』
WHEN sex=『0』THEN『女』
ELSE『其他』END
顯然,簡單Case函數生在簡潔,但是它只適用於這種單欄位的單值比較,而Case搜索函數的優點在於適用於所有比較的情況。
還有一個需要注意的問題,Case函數在滿足了某個符合條件後,剩下的條件將會被自動忽略,因此,即使滿足多個條件,執行過程中也只認第一個條件。
在使用CASE WHEN時,可以把它當作一個沒有欄位名的欄位,欄位值根據條件確認,在需要使用欄位名時可以是用as來定義別名。