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还是?
发布于 2013-02-25 20:36:33
null是special in SQL。如果将任何内容添加或连接到null,则结果为null。
在您的输出中,NULL不是字符串'NULL'。它是您的客户端对null的文本表示。
发布于 2013-02-25 20:38:14
Null不会打印为文本。如果你想这样做的话。如果存在NULL as,则必须完成此操作。
declare @period_len int = null
SELECT 'lalalalala' + Isnull(CONVERT(varchar, @period_len),'NULL') + 'lalalalala'发布于 2013-02-25 20:38:13
对于SQL Server,strings concatenated with null将产生null。
这在SQL Server 2005中是可配置的,但在SQL Server 2008中删除了该配置选项。
https://stackoverflow.com/questions/15067084
复制相似问题