2013-02-08 73 views
0

我有一個具有重複數據的表。在SQL中創建唯一列表

這是我現在的表

Id Name 
1 shahin Zen 
2 shahin Zen & Aaron Henley 
3 Fred Sayz feat. Antonia Lucas 
4 Fred Sayz feat. Lawrence Alexander 
5 Fred Sayz feat. Sibel 

注:我不能用不同的名字怎麼一回事,因爲還沒有完全匹配。

我想打一個表格形式列出這張表像,

ID Name 
1 shahin 
2 Fred 

請人解決這類問題。

感謝推進

+0

是隻列出名字的要求? – SchmitzIT 2013-02-08 14:51:06

回答

1

,如果你只是想獲得的行不同的第一句話就是:

select distinct substring(Name, 0, charindex(' ', Name, 0)) 
from myTable 

你也可以添加對行的檢查,它通過添加where子句包含空格字符:

where charindex(' ', myTable, 0) > 0 
+0

非常感謝你 – user1928185 2013-02-08 15:35:41

+0

不客氣,但請標記正確的答案,如果你從他們受益:) – Noxthron 2013-02-08 15:41:10

+0

@Noxthron upvoting你的,因爲它幫助OP,但你可以補償缺乏一個空間通過追加一個varchar你是CharIndexing。 – 2013-02-08 16:11:28

0

如果你只需要第一個名字,試試這個:

SELECT 
    LEFT(name, CHARINDEX(' ', name)) 
FROM Table1 
GROUP BY LEFT(name, CHARINDEX(' ', name)) 
0

你需要考慮的是沒有空間的記錄...

Select Distinct Left(name,CharIndex(' ',name+' ')) 
From myTable