sqlcaseif
『壹』 sql語句case的用法
select case when stcd='stcd' and tm between 'd1' and convert(varchar(100),year(dateadd(day,1,'d1')))
+'-'+convert(varchar(100),month(dateadd(day,1,'d1')))
+'-'+convert(varchar(100),day(dateadd(day,1,'d1')))
+' 8:00:00' then sum(drp) when stcd='stcd' and tm between convert(varchar(100),year(dateadd(day,-1,'d1')))
+'-'+convert(varchar(100),month(dateadd(day,-1,'d1')))
+'-'+convert(varchar(100),day(dateadd(day,-1,'d1')))
+' 9:00:00' and 'd1' then sum(drp) end drpsum from st_pptn_r你把'stcd'和'd1'換成具體值,試試看。
『貳』 sql case 能不能像if那樣使用
因為When和case是針對表裡面的欄位進行判斷,所以必須用select一起用!!沒辦法不服你找微軟吧,呵呵望採納!
『叄』 SQL里if語句和case語句有什麼區別嗎哪個使用更高效就是查詢更優化
if 是條件判斷語句 不能在 查詢語句中出現,case 是條件檢索 可以再查詢中出現
『肆』 資料庫中case語句和if語句的區別
SELECT
'Price
Category'
=
CASE
WHEN
price
IS
NULL
THEN
'Not
yet
priced'
WHEN
price
<
10
THEN
'Very
Reasonable
Title'
WHEN
price
>=
10
and
price
<
20
THEN
'Coffee
Table
Title'
ELSE
'Expensive
book!'
END
先說下,case要和end一塊用。
從上面可以看出,case里用的是when
then
形式,從整個case
end來看,它是從自己的多個語句中擇一輸出結果。
如果是把when
看成if
,就好理解多了,if語句就像是篩子里的石子,而case
end就是篩子,只會允許一個符合它網眼大小的石頭出去,並且會將這個石子打包成一個可用的表達式。
『伍』 SQL IF 語句
來晚了~
關於判斷語句看資料庫吧
SQL server 支持的查詢語句命令case when:
結構如下:
case
when 條件1 then 結果1
when 條件2 then 結果2
……
end
在access中,不支持case when 結構,使用 iif 代替:
結構如下:
IIF(條件,結果1,結果2)
解釋:當條件成立,取結果1;當條件不成立,取結果2
IIF(TypeID=-1,'一般客人',(select ClubType.Name from ClubType where CustomerInfo.TypeID =ClubType.ID)) as TypeName
『陸』 如何在sql查詢中使用if和case語句
if 作為條件判斷,一般用在存儲過程或者函數裡面;
譬如
if sqlstate ='02000' then
select xxx from tab
case是作為判斷,用在查詢當中
select id, case when id = 1 then 'one' else 'null' end
高效兩個沒有可比性,深究一點,都是一個邏輯判斷,然後出結果,所以旗鼓相當,沒必要在這個問題上探究性能問題
『柒』 求詳解SQL的CASE函數語句含義
select 課程,
sum(case when 姓名='李四' then 成績 end)as '李四',
sum(case when 姓名='張三' then 成績 end)as '張三'
from table_2
group by 課程
--意思是:
查詢結果按照「課程」、「李四的成績」、「張三的成績」顯示出來,
其中「李四的成績」計算方法是:
當姓名=李四,那麼就計算將該行的成績按照課程進行分類加總
「張三的成績」計算方法是:
當姓名=張三,那麼就計算將該行的成績按照課程進行分類加總
select 姓名,
sum(case when 課程='語文' then 成績 end)as '語文',
sum(case when 課程='數學' then 成績 end)as '數學',
sum(case when 課程='英語' then 成績 end)as '英語'
from table_2
group by 姓名
--類似的意思是:
查詢結果按照「姓名」、「語文」、「數學」、「英語」按照姓名進行加總各科成績顯示出來,
其中「語文」成績計算方法是:
當科目=語文,那麼就計算將該行的成績按照姓名進行分類加總
「數學」成績計算方法是:
當科目=數學,那麼就計算將該行的成績按照姓名進行分類加總
「英語」成績計算方法是:
當科目=英語,那麼就計算將該行的成績按照姓名進行分類加總
case when 條件 then 表達式1 else 表達式2 end
表示:當條件成立,則返回表達式1,否則返回表達式2.
因此:sum(case when 姓名='李四' then 成績 end)as '李四', 表示如果姓名為李四,則加總計算成績,列名為『李四』
類似的樓主可以自己理解了。
『捌』 資料庫sql中的case語句~
SQL語句中的CASE語句與高級語言中的switch語句,是標准SQL的語法,適用與一個條件判斷有多種值的情況下分別執行不同的操作
靈活應用CASE語句可以使SQL語句變得簡潔易讀.
Case 使用方法:
Case具有兩種格式。簡單Case函數
和Case搜索函數。 --簡單Case
函數
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函數
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
這兩種方式,可以實現相同的功能。簡單Case函數的寫法相對比較簡潔,但是和Case搜索函數相比,功能方面會有些限制,比如寫判斷式。
還有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
--比如說,下面這段SQL,你永遠無法得到「第二類」這個結果
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一類'
WHEN col_1 IN ('a') THEN '第二類'
ELSE'其他' END
『玖』 SQL語句中能否含有if....else...判斷語句
SQL中沒有ifif....else...判斷語句,但有case…語句,而且是所有資料庫都支持的。
拓展資料:
程序中用法如下:
1、oracle和mysql資料庫都可以這樣寫CASE WHEN (RO.APPROVE_QUANTITY - NVL(tto.QUANTITY , 0 )) < 0 THEN 0 ELSE (RO.APPROVE_QUANTITY-NVL(tto.QUANTITY , 0 )) END surplusQuantity.
2、注意:NVL()是oracle資料庫中對欄位的非空校驗,如果欄位名為空,則賦值為逗號後面的值。
3、mysql中還有一種if...else的方法if(表達式, 表達式成立的值, 表達式不成立的值)
ifnull("欄位名", 值) -- 非空驗證。
『拾』 SQL語句中Case 的用法
Select Case 語句在有多個可能的條件必須被檢查時使用。與 If 語句不同,Select Case語句在找到匹配的Case 表達式並執行了Case 表達式和下一個Case 表達式之間的語句後將立即跳出。如果沒有匹配的Case 表達式,將執行其它語句。
Case Else 與lse 的意義相同。
Case 語句能接受各種類型的(作為判斷條件的)表達式。表達式可以是單一值、由逗號分隔的一組值、能返回值的函數、用"To"關鍵字指定的值的范圍或者使用"Is"關鍵字對等式或不等式進行測試。您可以連接不同類型的不同表達式,只要將它們用逗號分開即可。