十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

iif和case在数据查中的使用方法和注意事项

百恒网络 2012-09-24 1563

当我们在进行数据查询时,希望根据查询结果给出相应该的结论和评论,例如:根据工资或奖金直接给出评论是优秀员工,还是普通员工,在操作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 '优秀'

case

when Salay >=3000 and Salay<=3500 then '优良'

case

wher Salay < 3000 then '需要努力'

end

from UserSalary

南昌网站建设公司工程师提醒但在access中,不支持case when 结构,使用 iif 代替:

结构如下:

IIF(条件,结果1,结果2)

解释:当条件成立,取结果1;当条件不成立,取结果2

语法

IIf(expr, truepart, falsepart)

IIf 函数的语法含有下面这些命名参数:

部分 描述

expr 必要参数。用来判断真伪的表达式。

truepart 必要参数。如果 expr 为 True,则返回这部分的值或表达式。

falsepart 必要参数。如果 expr 为 False,则返回这部分的值或表达式。

说明

由于 IIf 会计算 truepart 和 falsepart,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果 falsepart 产生一个被零除错误,那么程序就会发生错误,即使 expr 为 True。

例:数据库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 ,'优秀',iif (Salary>=3000 and Salary<=3500 ,'优良',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 ,'优秀','需要努力') as comment from [UserSalary]"

希望本文对广大站长或从事企业网站建设公司的团队有所帮助,如对此不太理解的,可以与南昌网络公司百恒网络技术部联系。我们很高兴与广大站长和从事企业网站建设公司技术人员分享我们的技术和经验,分享是一件很快乐的事情。


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×