⑴ sql2005中有沒有switch語句啊
case '欄位' when (欄位= 值1) then 結果
when (欄位=值2) then 結果
else 結果
end
⑵ sql查詢語句 tise什麼意思
沒有這個語句的,可能是你的資料庫的列名吧。sql只有case 和switch
SQL語句中的CASE語句與高級語言中的switch語句,是標准SQL的語法,適用與一個條件判斷有多種值的情況下分別執行不同的操作
靈活應用CASE語句可以使SQL語句變得簡潔易讀.
Case 使用方法:
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語句怎樣查詢一個范圍
SQL方法完成數值區間查詢
要求:根據獎金等級表的數值區間,返回獎金對應的等級。
1、鏈接外部數據:數據--現有鏈接--瀏覽更多,在路徑中選擇數據Excel文件和目標工作表,建立數據鏈接。
詳細步驟參考前面所發的SQL相關文章。
2、編寫sql語句。
2.1、使用switch函數,SQL語句為:
select 姓名,獎金,switch(獎金<200,"D級",獎金<300,"C級",獎金<500,"B級",獎金>=500,"A級") as 獎金等級 from [獎金$a1:b11]
switch函數直接判斷數值,若數值小於200,返回D級;數值小於300返回C級;數值小於500,返回B級;餘下的數值條件要變化為>=500返回A級而不是<=700。
2.2、使用iif函數,SQL語句為:
select 姓名,獎金,iif(獎金<200,"D級",iif(獎金<300,"C級",iif(獎金<500,"B級","A級"))) as 獎金等級 from [獎金$a1:b11]
其基本思路和switch函數相同,類似工作表函數if的嵌套。
2.3、使用betweent...and,SQ語句為:
select a.姓名,a.獎金,b.等級 from [獎金$a1:b11] a,[獎金等級$] b where a.獎金 between b.最小值 and b.最大值
以戴蘇明同學為例子,在SQL代碼運行的時候,將戴蘇明同學的獎金一一和獎金等級表中的數值進行對比,符合區間的就返回區間等級。其他同學亦然。
但是,當獎金超出最大值700的時候就會取不到該條數據。
如劉平的獎金701並不在betweent...and的區間內,返回的結果中沒有劉平的數據。
2.4、使用Where比較大小,sql語句為:
select a.姓名,a.獎金,b.等級 from [獎金$a1:b11] a,[獎金等級$] b where a.獎金 >=b.最小值 and a.獎金<=b.最大值
此方法原理和betweent...and一樣,當獎金超過最大值700時,數據將有遺漏(劉平)。
當獎金的最大值為700的時候,以上四種方法都得出同樣的結果。
當獎金最大值超過700的時候,3、4兩個方法將遺漏獎金大於700的數據。
因此,可在設計獎金等級表的時候,可以將最大值700改為一個比較大的數值,使獎金再高也不會超過,則四種方位皆可。
如更改獎金等級表的最大值700為70000,這么大的一個范圍,則四種方法都適用。
⑷ 如何使用SQL資料庫表中欄位的值作為switch的參數
switch是access資料庫中的函數,在sql中一般用case……when表示。
如數據如下,其中性別為1代表男,性別為2代表女,現在要求顯示男女,不顯示1,2:
姓名 性別
張三 1
李四 2
王五 1
趙六 2
執行語句:
select姓名,casewhen性別=1then'男'when性別=2then'女'endas性別from表名;
顯示結果為:
姓名 性別
張三 男
李四 女
王五 男
趙六 女
⑸ sql server里的switch (fromTime.DayOfWeek)case DayOfWeek.Monday:
declare @t datetime
declare @i int
set @t=getdate()
if DATEPART ( dw , @t ) =1
set @i=7 --星期日
else if DATEPART ( dw , @t ) =2
set @i=1
else if DATEPART ( dw , @t ) =3
set @i=2
else if DATEPART ( dw , @t ) =4
set @i=3
else if DATEPART ( dw , @t ) =5
set @i=4
else if DATEPART ( dw , @t ) =6
set @i=5
else
set @i=6
print @i
⑹ PLSQL中,select case..when.. then..什麼意思怎麼用
case when ... then .. when .. then ... end
這種表達式,是sql的不同條件分支結果。
舉例如下,
1、創建數據表,create table test_student(stu_id number, class_id number);
⑺ sql server 中如何使用類似switch..case的分支操作
限定為某個數值? 不是很理解啥意思呵呵。
有很多方法能確定查詢條件,或者輸出類別。
什麼都不寫,但是有默認值的 default
= 號 也能確定某個特定值。。。
isnull(欄位,'輸出') as 名 也能保證欄位為DBNULL時輸出設定的值。
還有很多函數能實現輸出的變化,Convert()[case()]。
分支語句也能哦,SQL你面的switch(貌似SQL查詢與距離不能寫if..else)
case 欄位 when 欄位值 then '輸出'...else '最後輸出' end
多用在存儲過程。比如:有個欄位status狀態 0,1 你可以用分支語句來設定輸出內容 0就輸出 關閉 1就輸出打開 嘿嘿!
is 關鍵字 在查詢的時候也能指定 某些類別 如 is not null 等。
還有你是不是想問 SQL欄位和.NET裡面的變數映射表啊?MSDN里有哇~
如 short(sql) >> Int16(c#)
⑻ Sql Server 可以支持在sql中寫if或switch嗎
Sql Server 可以支持在sql中寫if或switch嗎
isnull(欄位,'輸出') as 名 也能保證欄位為DBNULL時輸出設定的值。
還有很多函數能實現輸出的變化,Convert()[case()]。
分支語句也能哦,SQL你面的switch(貌似SQL查詢與距離不能寫if..else)
case 欄位 when 欄位值 then '輸出'...else '最後輸出' end
⑼ Access 資料庫的 SQL語法 里的 Switch() 怎麼用
update 表 set 年齡=
case 名字='小紅' then 3
case 名字='小藍' then 5
else 年齡
end