Foxtable(狐表)用户栏目专家坐堂 → 对于SQL SERVER,如何使用IIF函数。


  共有14361人关注过本帖树形打印复制链接

主题:对于SQL SERVER,如何使用IIF函数。

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
对于SQL SERVER,如何使用IIF函数。  发帖心情 Post By:2009/10/26 9:46:00 [显示全部帖子]

Case When

IIF函数只对内部表和ACCESS格式的外部数据源有效,对于SQL SERVER这样的外部数据源,需要使用Case When语句进行条件判断。
 

语法1


Case 表达式
When 比较值1 Then 返回值1
When 比较值2 Then 返回值2
When 比较值3 Then 返回值3
....
Else 默认返回值
End


当表达式等于比较值1时,则得到返回值1,当表达式等于比较值2时,则得到返回值2,其余类推;当比较结束,没有符合的比较值时,则得到默认返回值。


例如


Select CName As 客户名称,
(Case CLevel
When 1 Then 'VIP客户'
When 2 Then '高级客户' 
When 3 Then '普通客户'
Else '错误等级'
End) As 客户等级 From {客户}

可以看到Case When语句其实比IIF函数更为清晰,同时也可以看出,Select语句其实可以分多行编写的。


语法2


Case
When 表达式1 Then 返回值1
When 表达式2 Then 返回值2
When 表达式3 Then 返回值3
...
Else 默认返回值
End


当表达式1成立时,则得到返回值1,当表达式2成立时,则得到返回值2,其余类推;没有表达式成立时,则得到默认返回值。


例如:


Select 姓名,
(Case
When 体重 < 40 Then '偏瘦'
When 体重 > 50 Then '偏胖'  
Else '适中'
End) As 体型 From {学生}


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/10/26 9:54:00 [显示全部帖子]

已经加了

 回到顶部