2017-06-14 81 views
-1

喜我有兩個獨立的柱[StuName,StuLName]合併2列一列中

在選擇

我使用這樣的:

Select StuName, StuLName From Tbl_Student

結果:[馬赫迪],[胡賽尼]

有沒有什麼辦法來這2列一列(只選)這樣的東西結合起來:

Select StuName + " " + StuLName From Tbl_Student

結果(例如):

馬赫迪·侯賽尼

StuName和StuLName是NVARCHAR

+0

你有它應該工作的方式。你有沒有嘗試過? –

+0

可能需要使用「而不是」 –

+0

是的,我嘗試過,但沒有工作,其返回null –

回答

3

您的查詢應該工作。否則,你也可以使用[CONCAT]串togehter兩個或多個字符串:

SELECT CONCAT('First' , ' ' , 'Last') 

結果:大約的毗連

First Last 

更多信息上MSDN

在你的情況,這應該做的伎倆:

SELECT CONCAT(StuName, ' ',StuLName) AS StudentName FROM Tbl_Student 
+0

你可以添加示例與OP的列和表名,這將是他/她更有用。 – Nino

+0

@Nino - 完成:)謝謝對於建議 – SchmitzIT

+0

tnx其工作... –

1

試試這個:

SELECT TABLE_SCHEMA + '.' + TABLE_NAME AS ColumnZ 
FROM information_schema.tables 
1

SQL使用一對單引號代替雙引號的。這應該工作得很好:

Select StuName + ' ' + StuLName From Tbl_Student 
1

嘗試此查詢,該列的一個可能爲空值,它會返回一個空值

Select ISNULL(StuName,'') + ' ' + ISNULL(StuLName,'') From Tbl_Student 
1

所有的語句會先嚐試獲取一列名爲「 」。如果您只需要空格字符,則需要使用單引號:''。用雙引號引用一般的列或數據庫對象。

SqlServers字符串連接返回null如果連接值中的至少一個爲空:

'te' + 'st' = 'test' 

'te' + null = null 

爲了確保你得到一個值,你必須確保,所有部件提供非空值。這是通過使用isNullcoalesce來完成的。我更喜歡coalesce,因爲它更像是一個標準(糾正我,如果我錯了)。或者您可以使用非常有用的concat函數,該函數負責處理所有參數。

所以你的說法應該是這樣的:

Select coalesce(StuName,'') + ' ' + coalesce(StuLName,'') From Tbl_Student 

Select concat(StuName,' ',StuLName) From Tbl_Student