0
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'

输出:空

后者不应该是 lalalalalaNULLlalalalala 还是 lalalalalalalalalala ?

4

4 回答 4

2

null在 SQL 中是特殊的。如果你添加或连接任何东西到null,结果是null

在您的输出中,NULL不是字符串'NULL'。这是您的客户对null.

于 2013-02-25T12:36:33.307 回答
2

Null 不作为文本打印。如果你想这样做。你必须完成它,如果有 NULL 作为

declare @period_len int = null
SELECT 'lalalalala' + Isnull(CONVERT(varchar, @period_len),'NULL') + 'lalalalala'
于 2013-02-25T12:38:14.163 回答
0

如果您真的想在输出中使用 null ,请执行此操作

declare @period_len varchar(4) 
set @period_len='null'
SELECT 'lalalalala' +  @period_len + 'lalalalala'

使用 null 作为字符串而不是 SQL 特殊关键字 NULL 表示未知

于 2013-02-25T12:40:06.350 回答
0

对于 SQL Server,与 null 连接的字符串会产生 null。

这在 SQL Server 2005 中是可配置的,但在 SQL Server 2008 中已删除配置选项。

于 2013-02-25T12:38:13.413 回答