注册 登录
编程论坛 SQL Server论坛

求教

ghw111ghw 发布于 2008-09-23 17:20, 946 次点击
select iif(cast(ucutnum as int) > = cast(lcutnum as int) ,ucutnum ,lcutnum) from t_productback

环境:
sql server 2000
说明:
ucutnum nvarchar(50),lcutnum nvarchar(50)

错误提示:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '> ' 附近有语法错误。

目的:
判断一条记录两个字段“ucutnum”,“lcutnum”;当ucutnum字段的值大于或等于lcutnum字段的值的时候
做一系列算法,否则做另一系列算法。
不知道有没有其它方法实现。
5 回复
#2
师妃暄2008-09-23 17:36
iif在SQL2000中使用是有问题
可以用case when解决


select case when cast(ucutnum as int) > = cast(lcutnum as int) then ucutnum  else lcutnum end
 from t_productback

[[it] 本帖最后由 师妃暄 于 2008-9-23 18:01 编辑 [/it]]
#3
ting47632008-09-23 17:37
好像有些没有对应的函数,不好用,你可以用 case when ... else ... end
select case when cast(ucutnum as int) > = cast(lcutnum as int) then ucutnum else lcutnum end from t_productback
#4
nbxkele2008-09-23 17:42
不知道这样还行:
select when cast(ucutnum as int) > = cast(lcutnum as int)   then   ucutnum else lcutnum end from t_productback




用两个语句........
#5
ghw111ghw2008-09-23 20:41
ok,谢谢大家,我明天试试看
#6
ghw111ghw2008-09-24 08:21
版主和3楼正确4楼缺case
谢谢大家
1