【问题标题】:Output results from a single select statement as one row [duplicate]单个选择语句的输出结果为一行[重复]
【发布时间】:2012-02-29 20:21:35
【问题描述】:

可能重复:
SQL Server: Can I Comma Delimit Multiple Rows Into One Column?

我在数据源中有一堆值,我试图将它们输出为一行:

SELECT
    '|| Id == "' + cast(ID as varchar(100)) + '"'
FROM 
    dbo.CAItem
WHERE 
    isactive = 1

这是正确的数据,但我想将其输出为单行而不是每个结果的单独行,以便我的返回将是这样的单行:

|| Id == "4431" || Id == "4436"

【问题讨论】:

  • 如果这只是显示,你为什么不能做这个应用程序端?虽然,您至少需要某种分隔符。

标签: sql sql-server-2005


【解决方案1】:

SQL Server 中没有GROUP_CONCAT() 函数,但是在 SQL Server 2017 中引入了STRING_AGG()

与此同时,您可以这样做:

DECLARE @a TABLE(ID INT);

INSERT @a SELECT 4431 UNION ALL SELECT 4436;

SELECT *
  FROM (SELECT '|| Id == "' + CONVERT(VARCHAR(100), ID) + '"'
  FROM @a -- WHERE Isative = 1
FOR XML PATH('')) AS x(n);

【讨论】:

    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多