當我們在進行數(shù)據(jù)查詢時,希望根據(jù)查詢結果給出相應該的結論和評論,例如:根據(jù)工資或獎金直接給出評論是優(yōu)秀員工,還是普通員工,在操作SQL查詢選擇時我們需要了解下SQL查詢語句的結構及屬性:
SQL server 支持的查詢語句命令case when:
結構如下:
case
when 條件1 then 結果1
when 條件2 then 結果2
……
end
實例:
use mydatabase
go
Select Username,Salary,評語是=
case
when Salay >3500 then '優(yōu)秀'
case
when Salay >=3000 and Salay<=3500 then '優(yōu)良'
case
wher Salay < 3000 then '需要努力'
end
from UserSalary
南昌網(wǎng)站建設公司工程師提醒但在access中,不支持case when 結構,使用 iif 代替:
結構如下:
IIF(條件,結果1,結果2)
解釋:當條件成立,取結果1;當條件不成立,取結果2
語法
IIf(expr, truepart, falsepart)
IIf 函數(shù)的語法含有下面這些命名參數(shù):
部分 描述
expr 必要參數(shù)。用來判斷真?zhèn)蔚谋磉_式。
truepart 必要參數(shù)。如果 expr 為 True,則返回這部分的值或表達式。
falsepart 必要參數(shù)。如果 expr 為 False,則返回這部分的值或表達式。
說明
由于 IIf 會計算 truepart 和 falsepart,雖然它只返回其中的一個。因此要注意到這個副作用。例如,如果 falsepart 產(chǎn)生一個被零除錯誤,那么程序就會發(fā)生錯誤,即使 expr 為 True。
例:數(shù)據(jù)庫A表中有一個字段SEX代表性別其中1 代表男 0代表女
假如要在而面上顯示男或女的話可以使用如下語句:
select iif(sex=1,'男','女') as 性別 from A
sex=1里就返回男 sex=0時就返回女
set rs=server.createobject("adodb.recordset")
sql = "select UserName+'評語是:'+iif (Salary>3500 ,'優(yōu)秀',iif (Salary>=3000 and Salary<=3500 ,'優(yōu)良',iif (Salary<3000 ,'需要努力'))) as comment from [UserSalary]"
conn.execute(sql)
rs.open sql ,conn,1,2
response.Write(rs.recordcount)
for i=1 to rs.recordcount
if rs.eof then
exit for
end if
response.Write(rs("comment")&"
")
rs.movenext
next
rs.close
set rs=nothing
sql = "select UserName+'評語是:'+iif (Salary>3500 ,'優(yōu)秀','需要努力') as comment from [UserSalary]"
希望本文對廣大站長或從事企業(yè)網(wǎng)站建設公司的團隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡公司百恒網(wǎng)絡技術部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設公司技術人員分享我們的技術和經(jīng)驗,分享是一件很快樂的事情。