2011-12-25 71 views
2

我想找到一個希望簡單的解決方案來解決以下問題。如何編寫一個查詢,該查詢返回一列中每個不同值的行並從另一列返回任意值?

我有這樣

Name - GUID 

NameA {AH42-AJG5-AFHA}  
NameA {AJD4-AFJ4-HVFA}  
NameB {BGA4-AJGA-GHAA} 
NameB {JGA8-GGK1-KLP9}  
NameA {KGA4-JAD4-GJA9} 

我想要的結果的一個例子的表是

NameA {AH42-AJG5-AFHA} 
NameB {BGA4-AJGA-GHAA} 

正是我想要1項針對特定的名字,我需要將其與相關的GUID這個名字在第二列。 (返回的GUID是任意的)

感謝您的建議。

+0

什麼RDBMS?你如何定義要返回哪個GUID?它是任意的嗎?還有什麼是'GUID'的數據類型,因爲它們看起來不像實際的GUID? – 2011-12-25 22:19:52

+0

鑑於您的示例,這意味着您希望按照字典順序排列最低的GUID? – fge 2011-12-25 22:20:17

+0

你想要一個給定名稱的GUID? – 2011-12-25 22:20:30

回答

4

假設返回的GUID是不相關的;只要它有一個關聯到其中一個名字。

Select [name], min([GUID]) as mGuid 
FROM tableLikeThis 
Group by [Name] 
+0

它實際上是不相關的,我會嘗試你的代碼。 – user974631 2011-12-25 22:25:52

+0

它的工作原理,但查詢輸出有點奇怪= 「 checkDEC {09006050-90E3-46d8-965E-8151F0DA6215}」 應該是 「 checkDEC {09006050-90E3-46d8-965E-8151F0DA6215}」任何想法? – user974631 2011-12-25 22:29:53

+0

@ user974631 - 您需要爲「min(GUID)AS GUID」列提供別名。 – 2011-12-25 22:34:02

0

只是提出了一個替代方法(xQbert已經回答了問題)。你可以做一些事情:

SELECT DISTINCT ON (Guid) Name, Guid 
FROM Table 
相關問題