declare @period_len int = 1
SELECT 'lalalalala' + CONVERT(varchar, @period_len) + 'lalalalala'
输出:lalalalala1lalalalala
declare @period_len int = null
SELECT 'lalalalala' + CONVERT(varchar, @period_len) + 'lalalalala'
输出:NULL
后者不应该是lalalalalaNULLlalalalala或lalalalalalalalala?
答案 0 :(得分:2)
null
是special in SQL。如果您向null
添加或连接任何内容,则结果为null
。
在您的输出中,NULL
不是字符串'NULL'
。这是您客户的null
文字表示。
答案 1 :(得分:2)
Null不作为文本引用。如果你想这样做如果
为NULL,则必须完成它declare @period_len int = null
SELECT 'lalalalala' + Isnull(CONVERT(varchar, @period_len),'NULL') + 'lalalalala'
答案 2 :(得分:0)
对于SQL Server,strings concatenated with null产生空值。
这在SQL Server 2005中是可配置的,但SQL Server 2008中已删除配置选项。
答案 3 :(得分:0)
如果你真的想在输出中使用null,请执行此操作
declare @period_len varchar(4)
set @period_len='null'
SELECT 'lalalalala' + @period_len + 'lalalalala'
使用null作为字符串而不是SQL特殊关键字NULL表示未知