『壹』 sql的case when問題
USEtempdb
GO
IFOBJECT_ID('TA')ISNOTNULL
DROPTABLETA
CREATETABLETA
(
產品NVARCHAR(10),
編號NVARCHAR(10),
公司NVARCHAR(10),
價格INT)
GO
INSERTINTOTA
SELECT'1','A','11',1UNIONALL
SELECT'2','B','11',2UNIONALL
SELECT'3','C','22',3UNIONALL
SELECT'1','A','22',4
GO
SELECT*FROMTAA
WHERENOT
(A.公司='22'AND
EXISTS(SELECT*FROMTABWHEREB.編號=A.編號ANDB.公司='11')
)
『貳』 oracle case when 多條件的sql問題
select
case when count >=1 and count<3 then '關鍵'
when count >=3 and count<5 then '重點'
when count >=5 then '一般'
end xxx
from ...
『叄』 用sql語句 case when來解答這道題,謝謝!
SELECT Name
,SUM(CASE Course WHEN '語文' THEN Score ELSE 0 END) AS [語文]
,SUM(CASE Course WHEN '數學' THEN Score ELSE 0 END) AS [數學]
,SUM(CASE Course WHEN '英語' THEN Score ELSE 0 END) AS [英語]
FROM Score
GROUP BY Name
『肆』 sql中case when問題
select count(case when price <500 then 1 else null end), count(case when price < 1000 then 1 else null end ), count(case when price >= 1000 then 1 else null end), average(price) from t
『伍』 sql中Case when的問題
改成:
select Sname as 姓名,(CASE WHEN Ssex ='男' THEN 'male'
WHEN Ssex ='女' THEN 'female'
END) as 性別
from Student
『陸』 sql中case when 的問題
max是sql聚合函數,不像一般函數那樣可被孤立地使用,它需針對一個行集(一張表或查詢)進行計算才能返回唯一一條結果。
題主可以試一下這樣寫:
select case when version=
(select max(version) from t1) then projectno end from t1;
又或者
select case when a.version=b.maxversion then
a.projectno end from t1 a,
(select max(version) as maxversion from t1) b;
『柒』 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)casewhen的sql題擴展閱讀:
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 when 怎麼用
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 case when 的問題
NO換成courseNO,還有case when end 後面最好加個列名,正確如下:
string sql = @"select courseNO as NO ,courseNO,courseName,courseIllustrate
case
when courseNO like 'C%' then '初中'
when courseNO like 'G%' then '高中'
end as 年級
from tb_crouse";
『拾』 SQL case when 語句
太長了,但是看到一個問題,case
when,要求返回的類型必須一直。
你看你的第一個case
when語句
(case
when
to_char(statistic_date-payrefdate>=0)
and
to_char(statistic_date-payrefdate<90)
then
sum(a.planfee-nvl(c.payreffee,0))
else
''
end)
then後邊返回的是一個求和,那麼類型肯定是數字,而else分支,其他情況下居然返回了空字元串,字元型。這兩個不一致,首先就錯了。你先改了這些吧。