摘要: 以下SQL段,大家认为结果是什么呢? DECLARE @A VARCHAR(50) SET @A='TEST' SELECT TOP 1 @A=ISNULL(FIELDNAME,'DEFAULT') FROM TABLENAME WHERE 1=2 PRINT @A GO 可能大家都认为结果显示是:DEFAULT,因为变量@A初始化为:TEST,在执行SQL查询后,由于条件1=2不成立,所以查询结果FIELDNAME的值应该是NULL,然后再执行ISNULL函数,就会将默认值DEFAULT赋给变量@A,然后最终打印是DEFAULT,但实际执行的结果却并不是这样,而是TEST,原因是什么呢?经过我的分析,找到了问题的原因,那就是SELECT语句,在找不到的记录的情况下,是不会执行赋值操作的(即:ISNULL(FIELDNAME,'DEFAULT')根本没有执行),所以才会得出该结果,若要解决这个问题,我们可以使用SET关键字给变理赋值 阅读全文
posted @ 2014-11-13 13:02 梦在旅途 阅读(514) 评论(2) 推荐(0) 编辑