2013-07-16 33 views
-1

我有一個200,000個帳戶的數據庫,這是個人/家庭的混合,即John Doe和商業名稱。我想創建一個SELECT語句來選擇只有企業名稱我相信唯一可能的方式來寫這將是:查詢選擇企業

and (account like'%inc.' 
or account like'%ltd' 
or account like'&gmbh') 

...等。

有沒有人寫過類似的東西?我還需要包括國際後綴,但我甚至找不到按國家列出的可靠名單。

+1

什麼SQL方言? MySQL,SQL-Server,Oracle等? – Barmar

+1

你的桌子上有什麼字段? –

+0

難道你沒有一個領域指出賬戶是一個人還是一個企業? – Carsten

回答

3

答案是,你不能這樣做。如果你的數據太髒,以至於你不知道一個人和一個企業之間的差異,爲什麼你認爲最後會有'inc.','gmbh''ltd'

然後,您需要考慮激動人心的公司名稱,如「約翰迪爾」或「亞瑟安徒生」。這些看起來很像一個人的名字。如果你沒有公司結構指標,那麼你將如何分辨這種差異?

正確的解決方案是使用第三方供應商更正帳戶的名稱。您還可以考慮更改您的運營系統(輸入名稱的人)以放入個人/公司指標。順便說一句,你如何處理與自己合併的個人,在美國稱爲S-Corp?

如果你想開始一個特設工作,那麼我會在每個名字看着最後一個字開始:

select right(name, charindex(' ', reverse(name))), count(*), min(name), max(name) 
from t 
where name like '% %' 
group by left(name, charindex(' ', name)) 

(這是SQL Server語法來獲得在名稱的最後一個字。 )通過這些查看可能的後綴列表。順便說一下,如果這是國際性的,如果一些語言使用前綴來表示公司而不是後綴,我不會感到驚訝。