怎么取得如下数据?
假如表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
如果不是字符型的话转换成字符型就可以了。