Sql server 在Sql中使用Coallace

Sql server 在Sql中使用Coallace,sql-server,Sql Server,我怎样才能转换 Id Name TypeCode UseType OptionsText 1 A AA 1 Test1 2 B AB 2 Test2 3 B AB 2 Test3 对此 Id Name TypeCode UseType OptionsText 1 A AA 1 Test1 2 B AB

我怎样才能转换

Id  Name TypeCode   UseType OptionsText
1    A     AA          1      Test1
2    B     AB          2      Test2
3    B     AB          2      Test3
对此

Id  Name TypeCode   UseType OptionsText
1    A     AA          1      Test1
2    B     AB          2      Test2;;Test3
我正在尝试使用coallace进行此操作,但无法使其正常工作。

您可以使用:

SELECT 
  t1.Name,
  t1.TypeCode,
  t1.UseType ,
  STUFF((
    SELECT ';; ' + t2.OptionsText
    FROM Tablename t2
    WHERE t2.Name   = t1.Name
      AND t1.TypeCode = t2.TypeCode
    FOR XML PATH (''))
  ,1,2,'') AS OptionsText
FROM Tablename t1
GROUP BY t1.Name,
      t1.TypeCode,
      t1.UseType; 
这将为您提供:

| NAME | TYPECODE | USETYPE |    OPTIONSTEXT |
|------|----------|---------|----------------|
|    A |       AA |       1 |          Test1 |
|    B |       AB |       2 |  Test2;; Test3 |

您使用的是哪种数据库?SQL是许多不同数据库供应商实现的语言,以及他们自己的自定义扩展。您知道您使用的是哪种数据库产品(MySQL、SQL Server、Oracle)吗?Microsoft SQL Server 2005、2008?甲骨文11g?mySQL?供应商和版本帮助。联合不会这样做。在Oracle中,它是WM_Concat或ListAgg。)@all i amm使用SQL Server这为您提供了一个如何实现所需结果的示例。谢谢,它工作得很好,但实际上它从文本中剪切了一些文本它剪切了text@Rex-是否可以使用您正在处理的值进行更新以查看您遇到的问题。将XML路径(“”),1,2,“”)替换为XML路径(“”),1,1,“”),现在工作正常