【问题标题】:How can I print table in horizontal in SQL?如何在 SQL 中水平打印表格?
【发布时间】:2012-07-21 07:40:04
【问题描述】:

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

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

我希望输出是这样的:

101 abc 102 xyz 103 pqr

【问题讨论】:

  • 您必须提供更多信息(表结构、示例数据、哪个值决定信息应该进入哪一列)以获得合理的答案 - google for SQL Pivot table 以获得一些想法。

标签: mysql sql sql-server oracle


【解决方案1】:

这里用你的表和列名替换并使用这个 SQL:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      【讨论】:

      • 你好,当我参加 4 次面试时,我遇到了这个问题。
      • 好的,那么我希望这个问题包含更多信息。喜欢关于输出的更多细节。
      猜你喜欢
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多