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,“”),现在工作正常