我想按水平順序打印數據庫表。我可以使用CASE
或其他東西,以及如何?如何在SQL中以水平方式打印表格?
ID NAME
-- ----
101 abc
102 xyz
103 pqr
我所要的輸出是這樣的:
101 abc 102 xyz 103 pqr
我想按水平順序打印數據庫表。我可以使用CASE
或其他東西,以及如何?如何在SQL中以水平方式打印表格?
ID NAME
-- ----
101 abc
102 xyz
103 pqr
我所要的輸出是這樣的:
101 abc 102 xyz 103 pqr
這裏你的表和列名替換和使用SQL:
DECLARE @str VARCHAR(100);
SELECT @str = COALESCE(@str + ' ', '') + column_name FROM table_name
SELECT @str
DECLARE @str VARCHAR(100) ;
選擇@str = COALESCE(@str + '', '')+轉換(VARCHAR,ID)+ '' +的名字從表名
選擇@str
爲什麼兩個答案?你可以編輯你自己的答案.. – 2012-07-21 09:52:37
首先,它沒有任何意義的是您將所有平臺列爲標籤 - 您一次只能使用一個
這是一個真正的問題嗎?也許你只是學習SQL,並想知道是否有一種「簡單」的方法來做到這一點?答案是不。
SQL不是最好的方法 - 如果您從另一個環境調用SQL,該語言更適合格式化打印輸出。 C,C++,C#,PHP,Python等都可以讓你獲取分貝數據並將其流式傳輸到不帶換行符的輸出中。
我最常使用的情況下,這是解決問題的最好方法。但是,如果您可以提供有關您實際嘗試執行的操作的更多信息,則可能有辦法在SQL中很好地解決問題。鑑於你的問題,答案是否定的,用這種方式使用調用語言來格式化打印。
你好,當我去了一個interviw那次我面臨這個問題。 – 2012-07-21 10:39:37
好的,那麼我希望問題中包含更多信息。就像輸出中的更多細節一樣。 – Hogan 2012-07-21 10:47:45
您必須提供更多信息(表結構,示例數據,哪些值決定信息應該到哪個列)才能獲得明智的答案 - 谷歌SQL數據透視表獲得一些想法。 – 2012-07-21 07:46:40