读书人

如何取得如下数据

发布时间: 2012-03-05 11:54:02 作者: rapoo

怎么取得如下数据?
假如表T有三列

A B C
1 'b ' 'c '
1 'a ' 'a '
1 'c ' 'b '
2 'd ' 'f '
2 'e ' 'a '

如果要按A列来分组, 分组后取各组的任一行,
结果类似如下:
A B C
1 'b ' 'c '
2 'd ' 'f '

请问该SQL语句该怎么写? 谢谢.



[解决办法]
kafuwei(你给了国家什么) ( ) 信誉:100 Blog 2007-03-13 16:37:50 得分: 0


SELECT A,MAX(B),MAX(C)
FROM T
GROUP BY A
ORDER BY A

或者用min函数等都可以。


------------
法有,得到的B C很有可能不是同一行的。

如果表中有字,借用下表。

Select ID = Identity(Int, 1, 1), * Into #T From T
Select A, B, C From #T Where ID In (Select Min(ID) From #T)
Drop Table #T

[解决办法]
呵呵,抱歉,没看清,正解见下面:

SELECT A,
LEFT(MAX(B + '. ' + C), CHARINDEX( '. ', MAX(B + '. ' + C), 1) - 1) AS BB,
RIGHT(MAX(B + '. ' + C), LEN(MAX(B + '. ' + C)) - CHARINDEX( '. ', MAX(B + '. ' + C), 1)) AS CC
FROM T
GROUP BY A
ORDER BY A

如果不是字符型的话转换成字符型就可以了。

读书人网 >SQL Server

热点推荐