sql的caseselect
Ⅰ sql語句用法: select case語句塊後面能否加where 條件
when。。。。。。。。。then。。。。。。。
when就相當於where
create
table
table_3(a
varchar
,b
varchar)
insert
into
table_3
values('1','2')
insert
into
table_3
values('1','3')
insert
into
table_3
values('2','2')
select
*
from
table_3
---when語句中的類型和else必須一致
select
(case
a
when
'1'
then'123'
when
'2'
then
'456'
else
0
end
)
as
aa
,a,b
from
table_3
select
case
when
a=1
then
'中文'
when
a=2
then
'英文'
else
'過問'
end
from
table_3
Ⅱ sql語句case查詢問題
select
case
when
費用交款日期
is
null
or
費用交款日期=''
then
0
else
isnull(稅務費,0)
as
稅務費
from
table
Ⅲ SQL查詢語句SELECT中帶有case when嵌套子查詢判斷的問題
1、創建兩張測試表
create table test_case1(id number, value varchar2(200));
create table test_case2(id number, value varchar2(200));
Ⅳ 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;
Ⅳ SQL的SELECT語句,裡面可以嵌套CASE么
可以的,而且使用頻率還比較高。
例:欄位:性別 以1和2,分別代表男和女
xb
1
2
1
那麼檢索的時候可以寫:
select case when xb = '1' then『男』when '2' then '女' else '' end
Ⅵ SQL的SELECT語句,裡面可以嵌套CASE么
答案
sql裡面沒有case語句!會有語法錯誤報錯!
匿名
這位老兄。不懂資料庫就不要亂發言了,,是在害人吧。。
可以有case。
在資料庫中case是多分支語句。可以嵌套在查詢語句中,就像JAVA和C#中的case的意義基本相同。
給你舉個例子。。case是個語句組。要和end 配合使用的。相當於JAVA和C#中的case...break。
select stuNo 成績=case
when writtenExam<60 then 'E'
when writtenExam between 60 and 69 then 'D'
when writtenExam between 70 and 79 then 'C'
when writtenExam between 80 and 89 then 'B'
else 'A'
end
from stuMarks
這段代碼的意思就是查詢學生成績表中筆試成績。當成績小於60分 打分為E
當成績在60~69之間 打分為D
類推、
Ⅶ sql語句中的的select case 問題
SELECT sum(case when age >20 and age <30 then 1 else 0 end) as [20-30歲的人數] FROM Student
---
以上,希望對你有所幫助。
Ⅷ SQL語句中Case 的用法
Select Case 語句在有多個可能的條件必須被檢查時使用。與 If 語句不同,Select Case語句在找到匹配的Case 表達式並執行了Case 表達式和下一個Case 表達式之間的語句後將立即跳出。如果沒有匹配的Case 表達式,將執行其它語句。
Case Else 與lse 的意義相同。
Case 語句能接受各種類型的(作為判斷條件的)表達式。表達式可以是單一值、由逗號分隔的一組值、能返回值的函數、用"To"關鍵字指定的值的范圍或者使用"Is"關鍵字對等式或不等式進行測試。您可以連接不同類型的不同表達式,只要將它們用逗號分開即可。
Ⅸ PLSQL中,select case..when.. then..什麼意思怎麼用
case when ... then .. when .. then ... end
這種表達式,是sql的不同條件分支結果。
舉例如下,
1、創建數據表,create table test_student(stu_id number, class_id number);
Ⅹ SQL中case when與select嵌套問題
SELECT
(Casewhengirl='a'thenA.oper_name_1elseB.oper_name_1)ASoper_name_1,
(Casewhengirl='a'thenA.oper_name_2elseB.oper_name_2)ASoper_name_2,
FROMA
--你試試,應該是可以的