如何在SQL中水平打印表?

时间:2012-07-21 07:40:04

标签: mysql sql sql-server oracle

我想以水平顺序打印数据库表。我可以使用CASE或其他东西吗?

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

我希望输出如下:

101 abc 102 xyz 103 pqr

3 个答案:

答案 0 :(得分:0)

此处替换为您的表和列名称并使用此SQL:

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

答案 1 :(得分:0)

DECLARE @str VARCHAR(100);
SELECT @str = COALESCE(@str +'','')+ convert(varchar,ID)+''+ NAME FROM TableName
选择@str

答案 2 :(得分:0)

首先,将所有平台列为标签是没有意义的 - 您一次只能使用一个

这是一个真正的问题吗?也许你只是学习sql并想知道是否有“简单”的方法来做到这一点?答案是否定的。

SQL不是执行此操作的最佳方法 - 如果从其他环境调用SQL,该语言更适合格式化打印输出。 c,c ++,C#,PHP,Python等都可以让你获取db数据并将其传输到没有换行符的输出。

我大多数情况下这是解决问题的最佳方法。

但是,如果您可以提供有关您实际尝试的内容的更多信息,那么可能有一种方法可以很好地解决SQL中的问题。如果您的问题答案是否定的,请使用调用语言以这种方式格式化打印。