2017-02-13 50 views

回答

2

null + 1null
null + 'things'null

試試這個:

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

如果任何列NULL,則該值爲NULL。使用COALESCE()

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

使用CONCAT()函數。當遇到空值時,它們只是從結果字符串中省略。此外,詮釋爲char的轉換是隱含無需轉換,你可以找到隱式轉換的圖表這裏https://msdn.microsoft.com/en-us/library/ms187928.aspx

SELECT 
    CONCAT('(''',SomeVarCharColumn,''',',SomeIntColumn,',',SomeOtherIntColumn,')') AS NewVarchar 
FROM SomeTable 
相關問題