T-SQL转换null int吃掉周围的文本?

时间:2013-02-25 12:34:32

标签: sql-server tsql

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?

4 个答案:

答案 0 :(得分:2)

nullspecial 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表示未知