A. 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。
B. SQL語句CASE WHEN
selectsum(casewhena='退貨'then-belsebend)
from表
C. sql case when請教
應該這樣寫:
select 姓名,工齡,
(case when (工齡>= '35') then '90%'
when (工齡>='30' and 工齡<'35') then '85%'
when (工齡>='20' and 工齡<'30') then '80%'
when (工齡>='10' and 工齡<'20') then '70%'
else 0 end) as '計算比例'
from 表
90% ,85%。。。 這些兩邊都加上引號
else 後面不能再跟 then
回答補充:
90%,85% 這些本來就是字元啊,資料庫不會認為90%是數字的,只會認為它是字元,是字元就必須加上引號。
除非你寫成0.9, 0.85。。。
這樣資料庫就會認為是數字,就不用加引號了。
D. 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部分將會被自動忽略。
(4)sqlwhen擴展閱讀:
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來定義別名。
E. sql語句中case when的使用問題
舉個例子就明白了,例如在員工的工資表把員工的工資分成等級
1000以下為低薪,1000-2000為中等,其他為高薪
select (case when salary <= 1000 then '低薪' when salary > 1000 and salary < 2000 then '中等' else '高薪' end ) as 工資等級 from employee
這樣,工資等級就可以當做一個列來處理,包括where裡面,可以寫where (case when salary <= 1000 then '低薪' when salary > 1000 and salary < 2000 then '中等' else '高薪' end ) = 『低薪'
當做一個列就好了
F. SQL中case when的用法
CASE
WHEN要麼是查詢條件要麼是查詢結構,表名逗號後面沒用,語法不對
G. sql語句case when什麼意思
case when 就是case when
判斷 case when 當滿足條件 then 。。。
when ...... then
...
可以寫很多種情況,直到結束
H. sql 的case when 語句
把括弧去掉就好了。
下面是case的兩種用法,可以看下 :
1. 使用帶有 CASE 簡單表達式的 SELECT 語句。
在 SELECT 語句中,CASE 簡單表達式只能用於等同性檢查,而不進行其他比較。下面的示例使用 CASE 表達式更改產品系列類別的顯示,以使這些類別更易於理解。
USE AdventureWorks2008R2;
GO
SELECT ProctNumber, Category =
CASE ProctLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Proction.Proct
ORDER BY ProctNumber;
GO
2. 使用帶有 CASE 搜索表達式的 SELECT 語句
在 SELECT 語句中,CASE 搜索表達式允許根據比較值替換結果集中的值。下面的示例根據產品的價格範圍將標價顯示為文本注釋。
USE AdventureWorks2008R2;
GO
SELECT ProctNumber, Name, 'Price Range' =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Proction.Proct
ORDER BY ProctNumber ;
GO
I. 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將被自動忽略。
(9)sqlwhen擴展閱讀:
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來定義別名。
J. SQL中CASE WHEN THEN的用法
selectcasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'endas[年齡段],count(name)as[數目]fromtable
groupbycasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'end