为什么我的SELECT语句中的字符串连接不起作用?

时间:2017-02-13 21:11:49

标签: sql sql-server tsql

我查询了表单

SELECT '(''' + 
       SomeVarCharColumn + 
       ''',' + 
       CONVERT(NVARCHAR(MAX), SomeIntColumn) + 
       ',' + 
       CONVERT(NVARCHAR(MAX), SomeOtherIntColumn) 
       + ')' 
FROM SomeTable

,所有结果均为NULL。我知道哪里出错了?

3 个答案:

答案 0 :(得分:2)

null + 1null
null + 'things'null

试试这个:

select '('''
    + isnull(somevarcharcolumn,'')
    + ''','
    + isnull(convert(nvarchar(max), someintcolumn),'null')
    + ','
    + isnull(convert(nvarchar(max), someotherintcolumn),'null')
    + ')' 
from sometable

答案 1 :(得分:2)

如果任何列为module: { rules: [ { test: /\.js$/, exclude: [/node_modules/], use: [ { loader: 'babel-loader', options: { babelrc: true } }, ], }, ], ,则值为NULL。使用NULL

COALESCE()

答案 2 :(得分:0)

使用CONCAT()函数。遇到空值时,只会从结果字符串中省略它们。此外,int to char转换隐含不需要转换,您可以在此处找到隐式转换的图表https://msdn.microsoft.com/en-us/library/ms187928.aspx

SELECT 
    CONCAT('(''',SomeVarCharColumn,''',',SomeIntColumn,',',SomeOtherIntColumn,')') AS NewVarchar
FROM SomeTable