sqlwhencasethen
Ⅰ PLsql中,select case..when.. then..什麼意思怎麼用
case when ... then .. when .. then ... end
這種表達式,是sql的不同條件分支結果。
舉例如下,
1、創建數據表,create table test_student(stu_id number, class_id number);
Ⅱ SQL判斷語句用法和多表查詢
1.格式化時間sql語句
本例中本人隨便做了兩張表,和實際不是很相符,只是想說明sql語句的寫法。
例1表格式如下:
需求:查詢出本表,但需要使time欄位的時間格式為yyyy-MM-dd,比如:2013-08-13
sql寫法:
SELECT
u.id,u.userId,u.timeType,DATE_FORMAT(time,'%Y-%m-%d')
AS
time,secondId
FROM
`user`
u
運行結果:
2.多表查詢(三表查詢)
例二三表結構如下:
需求:查詢出主表,要求在主表中顯示username和secondname
sql寫法:
SELECT
u.id,n.`name`,u.timeType,u.time,s.`name`
FROM
`user`
u,`name`
n,`second`
s
WHERE
u.userId=n.id
AND
u.secondId=s.id
運行結果:
3.when
then判斷語句
例三表結構如下:
需求:查詢上表,若timeType欄位值為2時,顯示每月的第二天,若timeType欄位值為4時,顯示每月的第四天
sql寫法:
SELECT
u.id,u.userId,(CASE
WHEN
u.timeType=2
THEN
'每月第二天'
WHEN
u.timeType=4
THEN
'每月第四天'
END)
AS
timeType
,u.time,u.secondId
FROM
`user`
u
運行結果:
以上所述是小編給大家介紹的SQL判斷語句用法和多表查詢,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
Ⅲ SQL中CASE WHEN THEN的用法
selectcasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'endas[年齡段],count(name)as[數目]fromtable
groupbycasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'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將被自動忽略。
(4)sqlwhencasethen擴展閱讀:
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...then...else...end) 的詳細解釋是什麼
例如一個3條件取值的欄位:
casewhen條件1then取值1when條件2then取值2else取值3end
when後接條件語句,then後為欄位取值(數值或字元串等都可以,但類型須一致)。
Ⅵ sql 2000中 select case when then 的用法
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result]
END
CASE
子句可以用於任何錶達式可以有效存在的地方。 condition 是一個返回boolean 的表達式。 如果結果為真,那麼
CASE
表達式的結果就是符合條件的 result。 如果結果為假,那麼以相同方式搜尋任何隨後的 WHEN 子句。
如果沒有 WHEN
condition 為真,那麼 case 表達式的結果就是在
ELSE 子句里的值。
如果省略了 ELSE
子句而且沒有匹配的條件, 結果為 NULL。
例子:
SELECT * FROM test;
a
---
1
2
3
SELECT a,
CASE WHEN a=1 THEN 'one'
WHEN a=2 THEN 'two'
ELSE 'other'
END
FROM test;
a | case
---+-------
1 | one
2 | two
3 | other
所有 result 表達式的數據的類型都必須可以轉換成單一的輸出類型。
下面這個"簡單的" CASE
表達式是上面的通用形式的一個特殊的變種。
CASE expression
WHEN value THEN result
[WHEN ...]
[ELSE result]
END
先計算 expression 的值, 然後與所有在WHEN
子句里聲明的 value 對比,直到找到一個相等的。 如果沒有找到匹配的,則返回在
ELSE 子句里的
result (或者 NULL)。 這個類似於 C 里的
switch
語句。
上面的例子可以用簡單 CASE
語法來寫:
SELECT a,
CASE a WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'other'
END
FROM test;
a | case
---+-------
1 | one
2 | two
3 | other
CASE
表達式並不計算任何對於判斷結果並不需要的子表達式。 比如,下面是一個可以避免被零除的方法:
SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END;