sql-server-2008 - 如何在特定列上选择不同的

标签 sql-server-2008 distinct

我在表中有几列

Col1 , Col2 , Col3 , Col4

现在我想这样选择
SELECT DISTINCT (Col1, Col2, Col3), Col4
即仅根据这三个列获得不同的结果。

最佳答案

从评论到另一个答案:

Can I get like this Col1, Col2 , Col3 and (Col4 in delimiter form)



是的,您可以使用 for xml path .
select Col1, 
       Col2,  
       Col3, 
       (
        select ',' + T2.Col4
        from YourTable T2
        where T1.Col1 = T2.Col1 and
              T1.Col2 = T2.Col2 and
              T1.Col3 = T2.Col3
        for xml path(''), type
       ).value('substring((./text())[1], 2)', 'varchar(max)') as Col4
from YourTable as T1
group by T1.Col1, T1.Col2, T1.Col3

SQL Fiddle

关于sql-server-2008 - 如何在特定列上选择不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620842/

相关文章:

sql - 使用 OUTPUT 子句插入不在 INSERTED 中的值

linq-to-sql - 返回表的 SQL Server 2008 函数是否像存储过程一样得到优化?

node.js - Node ,MongoDB( Mongoose )非重复计数

MySQL删除子查询中的重复子句

mysql - 通过另一个不同的 column2 选择 column1 的 MIN 和 MAX 并获取整行

php - 每次我尝试显示同一张表的多个字段时,即使在使用 DISTINCT 之后,MySQL 也会重复结果

mysql使用with语句在太多行上计算不同的数字

sql - 将 postgres 函数的结果作为参数返回给 SQL 存储过程

基于代码模式操作字符串的 SQL 算法

SQL Server Management Studio - 如何在不删除表的情况下更改字段类型