⑴ 求詳解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數據存儲中,所謂的空,有兩種形式,具體如下:
1、NULL:這是真正意義上的空,假如欄位名為col1,判斷方法為:
1
CASE THEN col1 IS NULL WHEN '為空' ELSE '不為空' END
2、空白:這種是表示空白字元串,假如欄位名為col1,判斷方法為:
1
CASE THEN col1 = '' WHEN '為空' ELSE '不為空' END
⑶ sql語句case when什麼意思
case when 就是case when
判斷 case when 當滿足條件 then 。。。
when ...... then
...
可以寫很多種情況,直到結束
⑷ SQL CASE 判斷語句
CASE when B2.ID=B1.ID then B2.YY else B3.YY end
⑸ SQL里if語句和case語句有什麼區別嗎哪個使用更高效就是查詢更優化
if 是條件判斷語句 不能在 查詢語句中出現,case 是條件檢索 可以再查詢中出現
⑹ sql語句中,decode和case when語句的區別有哪些
case when 寫起來更長但是更靈活,比如可以case when 列1>列2 ,而decode要實現這個功能要借用SIGN函數,因為DECODE只能判斷具體值不能判斷條件格式,decode(sign(列1-列2),1,『』)效果等同如上,其他的基本等同。
還有decode有一個靈活的應用就是order by , order by decode(列1,字元,1,字元2,2)可以進行靈活的排序。
⑺ SQL中CASE的用法,請高手解答
table
a b c
select sum(case a where >1 then 1 else 0 end),sum(case b where >2 then 1 else 0 end) from table
可以這樣用 統計a的值>1的結果和b的值>2的結果
⑻ 資料庫中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就是篩子,只會允許一個符合它網眼大小的石頭出去,並且會將這個石子打包成一個可用的表達式。
⑼ case when 條件和where 條件的區別
select * from 表 where 1=1 and (case when a=1 then a when 表.欄位='asdfasdf' then b end)='值
ase when 變數a='provider' then 'cp.id' else {1} end
這就不是判斷語句,這是賦值語句,where不能在後面
SQL code
?
1
2
3
4
SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID
AND CP.ID = case when 變數a='provider' then 'cp.id' else '{1}' end;
⑽ sql中case的用法
case 列 when 值1 then 值2 --當列的值等於值1 就返回值2
when 值3 then 值4 --當列的值等於值3 就返回值4
end
case when 列=值1 then 值2 --當列的值等於值1 就返回值2
when 列=值3 then值4 --當列的值等於值3 就返回值4
end