我需要每個特定數據庫條目只返回1行。對於例如如果我有:SQL SELECT DISTINCT和GROUP BY問題
ID col1 col2
1 1 A
2 1 B
3 1 C
4 2 D
5 3 E
6 4 F
7 4 G
在MySQL中,我可以運行一個查詢
SELECT DISTINCT col1, col2 FROM table GROUP BY col1
我一定要得到 - >
ID col1 col2
1 1 A
4 2 D
5 3 E
6 4 F
這是我想要的,但如果我運行相同在SQL Server中查詢我得到一個錯誤..
所以,基本上我需要從表中的每一行返回只有一個(或第一)「col1」和其「col2」..
什麼是SQL Server的正確語法?
謝謝你的時間!
安德烈
編輯:
,在MySQL的工作完整的查詢 - >
SELECT DISTINCT list_order, category_name, category_id
FROM `jos_vm_category`
WHERE `category_publish` = 'Y'
GROUP BY list_order
所以,對於每一個 「list_order」 號我要回不同於CATEGORY_NAME和CATEGORY_ID行,並忽略具有相同「list_order」編號的其他行
@marc_s:我猜OP得到的錯誤是SQL Server要求所有`SELECT`字段出現在`GROUP BY`子句中,除非它們是聚合函數的一部分。 MySQL不需要這個。 – 2010-12-05 18:18:35
MSSQL中的錯誤是「列'jos_vm_category.category_id'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。」 – Andrej 2010-12-05 18:20:33