Sql server 2005 COALESCE在SQL SERVER中做什么
我想知道coalesce在这种情况下做了什么,我知道它返回第一个非空值,我也经历了这个过程 我想知道它在这里具体做了什么:Sql server 2005 COALESCE在SQL SERVER中做什么,sql-server-2005,coalesce,Sql Server 2005,Coalesce,我想知道coalesce在这种情况下做了什么,我知道它返回第一个非空值,我也经历了这个过程 我想知道它在这里具体做了什么: DECLARE @EMPNO NUMERIC(22,5) SELECT @EMPNO = '' SELECT @EMPNO = COALESCE(?, 0) 我写这些语句的目的是,如果@EMPNO为空,我希望它被替换为零。恐怕我能从这三个陈述中做到这一点 帮帮我吧我想你必须这样做: SELECT @EMPNO = COALESCE(@EMPNO, 0) DECLAR
DECLARE @EMPNO NUMERIC(22,5)
SELECT @EMPNO = ''
SELECT @EMPNO = COALESCE(?, 0)
我写这些语句的目的是,如果@EMPNO为空,我希望它被替换为零。恐怕我能从这三个陈述中做到这一点
帮帮我吧我想你必须这样做:
SELECT @EMPNO = COALESCE(@EMPNO, 0)
DECLARE @EMPNO NUMERIC(22,5)
SELECT @EMPNO = NULL
SELECT @EMPNO = COALESCE(@EMPNO, 0)
你知道你也会写作
SET @EMPNO = COALESCE(@EMPNO, 0)
不能将数值设置为空varchar。您必须将其设置为NULL
。因此,您的完整代码应该如下所示:
SELECT @EMPNO = COALESCE(@EMPNO, 0)
DECLARE @EMPNO NUMERIC(22,5)
SELECT @EMPNO = NULL
SELECT @EMPNO = COALESCE(@EMPNO, 0)
或者您甚至不需要将@EMPNO
设置为NULL
。当您声明一个变量时,默认情况下它是NULL
。所以你唯一需要的是:
DECLARE @EMPNO NUMERIC(22,5)
SELECT @EMPNO = COALESCE(@EMPNO, 0)
如果您在msdn上看到,它会说:
返回其参数中的第一个非空表达式
Reference这是我遇到的错误:将数据类型varchar转换为数值时出错。