2012-07-21 79 views
1

我想按水平順序打印數據庫表。我可以使用CASE或其他東西,以及如何?如何在SQL中以水平方式打印表格?

ID NAME 
-- ---- 
101 abc 
102 xyz 
103 pqr 

我所要的輸出是這樣的:

101 abc 102 xyz 103 pqr 
+1

您必須提供更多信息(表結構,示例數據,哪些值決定信息應該到哪個列)才能獲得明智的答案 - 谷歌SQL數據透視表獲得一些想法。 – 2012-07-21 07:46:40

回答

0

這裏你的表和列名替換和使用SQL:

DECLARE @str VARCHAR(100); 
SELECT @str = COALESCE(@str + ' ', '') + column_name FROM table_name 
SELECT @str 
0

DECLARE @str VARCHAR(100) ;
選擇@str = COALESCE(@str + '', '')+轉換(VARCHAR,ID)+ '' +的名字從表名
選擇@str

+0

爲什麼兩個答案?你可以編輯你自己的答案.. – 2012-07-21 09:52:37

0

首先,它沒有任何意義的是您將所有平臺列爲標籤 - 您一次只能使用一個

這是一個真正的問題嗎?也許你只是學習SQL,並想知道是否有一種「簡單」的方法來做到這一點?答案是不。

SQL不是最好的方法 - 如果您從另一個環境調用SQL,該語言更適合格式化打印輸出。 C,C++,C#,PHP,Python等都可以讓你獲取分貝數據並將其流式傳輸到不帶換行符的輸出中。

我最常使用的情況下,這是解決問題的最好方法。但是,如果您可以提供有關您實際嘗試執行的操作的更多信息,則可能有辦法在SQL中很好地解決問題。鑑於你的問題,答案是否定的,用這種方式使用調用語言來格式化打印。

+0

你好,當我去了一個interviw那次我面臨這個問題。 – 2012-07-21 10:39:37

+0

好的,那麼我希望問題中包含更多信息。就像輸出中的更多細節一樣。 – Hogan 2012-07-21 10:47:45