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

如何解决----警告: 聚合或其它 SET 操作消除了空值.

scindy 发布于 2008-08-30 23:43, 2345 次点击
DECLARE @TXM VARCHAR(8),@CurDate VARCHAR(8),@SN VARCHAR(4),@ISN INT
DECLARE @NewTXM VARCHAR(20),@INewTXM VARCHAR(20),@NewTXM2 VARCHAR(20)

SET @CurDate = CONVERT(CHAR(8),GETDATE(),112)

SELECT @TXM = k.BarCode FROM tblGDZCXZMain M INNER JOIN tblStock K ON M.STKID = K.[ID] WHERE M.ZCXZNo = 'ZCXZ00000002'

SELECT @NewTXM=SUBSTRING(MAX(ZCBARCODE),17,4) FROM TBLGDZCXZMAIN  

SET @ISN = LEN(CONVERT(INT,@NewTXM))

SET @NEWTXM2 = CASE WHEN @ISN=0 THEN '0000' WHEN @ISN=1 THEN '000' + CONVERT(VARCHAR,(CONVERT(INT,@NewTXM)+1))
    WHEN @ISN=2 THEN '00' +  CONVERT(VARCHAR,(CONVERT(INT,@NewTXM)+1)) WHEN @ISN=3 THEN '0' +  CONVERT(VARCHAR,(CONVERT(INT,@NewTXM)+1))
    ELSE @NewTXM END

SET @INewTXM = @CurDate + @TXM + @NewTXM2

Print @CurDate
Print @TXM
Print @NewTXM
Print @ISN
Print @INewTXM

执行这段语句结果为:

警告: 聚合或其它 SET 操作消除了空值。
20080830
57022345
0002
1
20080830570223450003

如何去掉:警告: 聚合或其它 SET 操作消除了空值。

还有就是我从网上查了一下,说是用ISNULL方法,可是我的每个变量都有值,ISNULL用在哪个字段上啊?
3 回复
#2
球球2008-09-02 12:32
加个默认值
#3
scindy2008-09-02 12:42
怎么加默认值啊,在哪儿加`~`
#4
球球2008-09-05 02:43
有的字段为INT型的,当你在插入值时没有给这个字段赋值,它是null状态。
字符型的数字与数字相加结果仍为数字型的,比如:‘1’+1,结果是2,所以不用把‘1’转换为整型。
1