sql - 如何在sql中选择不同和连接

标签 sql sql-server-2005

假设我们在 SQLServer-2005 中有一个包含两列和以下数据行的下表:

Tiger    50
Wolf     4
Tiger    53
Lion     55
Elephant 54
Rhino    52
Lion     5

我们可以有一个 sql 查询,其结果如下:Tiger,Wolf,Lion,Elephant,Rhino 作为单个字符串 varchar 输出?可能吗? 使用 T-SQL 不可能,我正在使用 c# 中的结果作为executescalar 的结果 预先感谢您。

最佳答案

您可以使用作为 xml 路径来连接值:

select distinct name + ', ' as [text()]
from @t
for xml path('')

-->
Elephant, Lion, Rhino, Tiger, Wolf, 

如果您不喜欢尾随 ,,则切掉最后 2 个字节。

不知道为什么不能使用 T-SQL,您可以将其与 ExecuteScalar() 结合使用。

示例数据:

declare @t table (name varchar(max), id int)
insert into @t 
select 'Tiger', 50
union all select 'Wolf', 4
union all select 'Tiger', 53
union all select 'Lion', 55
union all select 'Elephant', 54
union all select 'Rhino', 52
union all select 'Lion', 5

关于sql - 如何在sql中选择不同和连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081485/

相关文章:

sql - 如何减去总和的负值?

mysql - SQL 错误 1064 语法

mysql - 选择并加入给出奇怪的结果

MySQL 从日期不同的 3 个表中选择

mysql - SQL Server 2005 是否具有与 MySql 的 ENUM 数据类型等效的数据类型?

asp.net - 数据库中的自动增量功能

sql - 从状态变化历史记录中获取每天的用户状态

sql - 合并查询中按月和年排序

sql - MSDB.dbo.sysmail_faileditems 中没有行

c# - 我应该如何研究 'rotate'或 'flatten'这个数据? PIVOT、自连接还是其他?