根据我的理解 IsNull 函数检查第一个值是否为空或空白,然后返回下一个值。
SELECT ISNULL(1,getdate())
但上面的语句给出了错误。任何人都可以帮助突出原因吗?
根据我的理解 IsNull 函数检查第一个值是否为空或空白,然后返回下一个值。
SELECT ISNULL(1,getdate())
但上面的语句给出了错误。任何人都可以帮助突出原因吗?
不允许从数据类型 datetime 到 int 的隐式转换,将第一个值设为 char
SELECT ISNULL('1',getdate())
顺便说一句,请注意 ISNULL 不是 ANSI 是专有的,只接受 2 个参数,COALESCE 接受更多
DECLARE @1 INT,@2 int, @3 INT, @4 int
SELECT @4 = 6
SELECT COALESCE(@1,@2,@3,@4)
下面这个说法是不正确的
IsNull 函数检查第一个值是否为空或空白,然后返回下一个值。
它不关心空白
运行这个
SELECT ISNULL('','A') -- Blank is returned not A
SELECT ISNULL(NULL,'A') -- A is returned because the first value is NULL
ISNULL 和 COALESCE 之间的另一个区别是 ISNULL 将返回与第一个参数相同的长度
运行这个
DECLARE @c CHAR(3)
SELECT ISNULL(@c,'not available') -- not
SELECT COALESCE(@c,'not available') --not available
我猜您正在尝试用日期替换整数。试试这个 SELECT ISNULL(1,2) 也许代替。
你可以让它自动播放,但我真的不推荐它。其他人非常不清楚它正在尝试做什么:
SELECT case when not 1 is null then 1 else getdate() end