Sql Server 2005中当两个整型字段中一个为空时如何比较大小?

如题... 如题 展开
 我来答
kas68310
2010-07-23 · TA获得超过3637个赞
知道大有可为答主
回答量:1468
采纳率:33%
帮助的人:1164万
展开全部
看"空"在你的定义里是最小还是参照数了.一般情况下要么等同于0或负值,要么看做最小.
EXP: 字段1 A 字段2 B
1.等于0
在比较前取数时,用isnull(A/B,0)将A/B替换成0再比较.
(正常来说int型列值在insert语句下不输入会为0...但手工插入或外媒体导入会发生空值.)

2.看做最小.
举个例子:
declare @A int
declare @B int

set @A=1
set @B=null

--select @A a,len(@A)la,@B b,len(@B)lb

select case
when @A=@B or isnull(len(@B),0)=isnull(len(@A),0) then '相等'
when isnull(len(@A),0)=0 then 'B大'
when isnull(len(@B),0)=0 then 'A大'
when @A>@B then 'A大'
else 'B大' end as 'result'
feixianxxx
2010-07-23 · TA获得超过2202个赞
知道大有可为答主
回答量:1273
采纳率:100%
帮助的人:1743万
展开全部
比如字段COL1 COL2
其中col1为NULL 那么可以这样
where isnull(col1,0)>col2

意思就是用isnull函数转化null字段 当col1字段为NULL时候 它的值转化成0 再与col2进行比较
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaofee
2010-07-23
知道答主
回答量:49
采纳率:100%
帮助的人:23.8万
展开全部
select sign(isnull(expr1,0)-isnull(expr2,0)) from table,结果>0的字段都是大于。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wsqrock
2010-07-23 · 超过73用户采纳过TA的回答
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:191万
展开全部
同意 feixianxxx的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式