Sql 为什么SELECT语句中的字符串连接不起作用?
我对表格有个疑问Sql 为什么SELECT语句中的字符串连接不起作用?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我对表格有个疑问 SELECT '(''' + SomeVarCharColumn + ''',' + CONVERT(NVARCHAR(MAX), SomeIntColumn) + ',' + CONVERT(NVARCHAR(MAX), SomeOtherIntColumn) + ')' FROM SomeTable 所有结果都是NULL。知道我哪里出错了吗?null+1是null null+
SELECT '(''' +
SomeVarCharColumn +
''',' +
CONVERT(NVARCHAR(MAX), SomeIntColumn) +
',' +
CONVERT(NVARCHAR(MAX), SomeOtherIntColumn)
+ ')'
FROM SomeTable
所有结果都是
NULL
。知道我哪里出错了吗?null+1
是null
null+“东西”
是null
请尝试以下方法:
select '('''
+ isnull(somevarcharcolumn,'')
+ ''','
+ isnull(convert(nvarchar(max), someintcolumn),'null')
+ ','
+ isnull(convert(nvarchar(max), someotherintcolumn),'null')
+ ')'
from sometable
null+1
是null
null+“东西”
是null
请尝试以下方法:
select '('''
+ isnull(somevarcharcolumn,'')
+ ''','
+ isnull(convert(nvarchar(max), someintcolumn),'null')
+ ','
+ isnull(convert(nvarchar(max), someotherintcolumn),'null')
+ ')'
from sometable
如果任何列为
NULL
,则该值为NULL
。使用合并()
:
如果任何列为
NULL
,则该值为NULL
。使用合并()
:
使用CONCAT()函数。当遇到空值时,只需从结果字符串中忽略它们。此外,int-to-char转换是隐式的,不需要转换,您可以在这里找到隐式转换图表
使用CONCAT()函数。当遇到空值时,只需从结果字符串中忽略它们。此外,int-to-char转换是隐式的,不需要转换,您可以在这里找到隐式转换图表
也许您的一个或多个值中有空值。String+null=null可能您的一个或多个值中有null。String+null=null
SELECT
CONCAT('(''',SomeVarCharColumn,''',',SomeIntColumn,',',SomeOtherIntColumn,')') AS NewVarchar
FROM SomeTable