SQL查询以显示设置的行数';将数据作为列?
如果我有一个选择表的前5行的查询,是否有方法操纵SQL将这5行中的值表示为5列 现有查询:SQL查询以显示设置的行数';将数据作为列?,sql,Sql,如果我有一个选择表的前5行的查询,是否有方法操纵SQL将这5行中的值表示为5列 现有查询: SELECT TOP 5 FirstName FROM USER 现有结果 乔恩 账单 吉尔 洛里 瑞克 期望结果 乔恩、比尔、吉尔、洛莉、里克 *注意:*我在这里用SQL Server语法介绍了查询,但我更喜欢一个普遍适用的解决方案。如果您想要不同的列,而不仅仅是所有值的单值列表,请尝试 如果您想要不同的列,而不是所有值的单值列表,请尝试 注意:将ROW_NUMBER()(在SQL Serve
SELECT TOP 5 FirstName
FROM USER
现有结果
- 乔恩
- 账单
- 吉尔
- 洛里
- 瑞克
- 乔恩、比尔、吉尔、洛莉、里克
*注意:*我在这里用SQL Server语法介绍了查询,但我更喜欢一个普遍适用的解决方案。如果您想要不同的列,而不仅仅是所有值的单值列表,请尝试 如果您想要不同的列,而不是所有值的单值列表,请尝试 注意:将
ROW_NUMBER()
(在SQL Server中工作)替换为允许您对内部查询中的记录进行编号的任何函数;例如rownum
等,具体取决于您的SQL版本
注意:将
ROW_NUMBER()
(在SQL Server中工作)替换为允许您对内部查询中的记录进行编号的任何函数;例如rownum
等,具体取决于您的SQL版本。。我还根据语法和OP前面的问题为这个[sql server]
添加了标签。如果不正确,请重新标记。@NullUserException这实际上是一个一般的SQL问题,但我用SQL Server语法来解释,因为这里的大多数人似乎都知道这一点。没关系,这很重要,因为没有标准的方法。。我还根据语法和OP前面的问题为这个[sql server]
添加了标签。如果不正确,请重新标记。@NullUserException这实际上是一个一般的SQL问题,但我用SQL Server语法来解释,因为这里的大多数人似乎都知道这一点。没关系。这很重要,因为没有标准的方法。回答很好,谢谢,但我更喜欢平台不可知论的答案。@C.Ross Dems的答案不是平台不可知论的。没有这样的答案。谢谢你的信任投票,你是对的!也就是说,在Access 2.0下的我的486上,他们两人都像疯了一样窒息;-)多么致命的应用程序(double smiley)@NullUserException虽然我知道它并不是真正的平台不可知论,但它可以适应其他平台,应该可以在多个数据库上工作。简而言之,我得到了他在我的目标环境中工作的答案。回答很好,谢谢,但我更喜欢平台不可知论的答案。@C.Ross Dems的答案不是平台不可知论的。没有这样的答案。谢谢你的信任投票,你是对的!也就是说,在Access 2.0下的我的486上,他们两人都像疯了一样窒息;-)多么致命的应用程序(double smiley)@NullUserException虽然我知道它并不是真正的平台不可知论,但它可以适应其他平台,应该可以在多个数据库上工作。简而言之,我得到了他在我的目标环境中工作的答案。
SELECT
MAX(CASE WHEN row_id = 1 THEN FirstName) AS Name1,
MAX(CASE WHEN row_id = 2 THEN FirstName) AS Name2,
MAX(CASE WHEN row_id = 3 THEN FirstName) AS Name3,
MAX(CASE WHEN row_id = 4 THEN FirstName) AS Name4,
MAX(CASE WHEN row_id = 5 THEN FirstName) AS Name5
FROM
(
SELECT TOP 5 FirstName, ROW_NUMBER() OVER (ORDER BY xxx) as row_id FROM User ORDER BY xxx
)
AS source