包裹在ISNULL()
Select TOP 1000 col1,
LTRIM(RTRIM(cast(ISNULL(col2,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(ISNULL(col3,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(ISNULL(col4,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(ISNULL(col5,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(ISNULL(col6,'') as varchar))))
from mytable
或者COALESCE()
Select TOP 1000 col1,
LTRIM(RTRIM(cast(COALESCE(col2,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(COALESCE(col3,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(COALESCE(col4,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(COALESCE(col5,'') as varchar)))
+ SPACE(2) + '|' + SPACE(2) + LTRIM(RTRIM(cast(COALESCE(col6,'') as varchar))))
from mytable
如果使用SQL Server 2012可以更輕鬆感謝CONCAT()
字段(可以更換SPACE(2)
也有' | '
):
Select TOP 1000 col1
,CONCAT(LTRIM(RTRIM(cast(col2 as varchar)))
,' | ', LTRIM(RTRIM(col3))
,' | ', LTRIM(RTRIM(col4))
,' | ', LTRIM(RTRIM(col5))
,' | ', LTRIM(RTRIM(col6)))
from mytable
如果我使用COALESCE(),查詢將如何? –
只是用COALESCE替換ISNULL :-) – dnoeth
:-)哈哈謝謝。我不知道語法完全相同... :-) –