基本上,我正在處理一個可怕的設置表,我很想重建,但我不確定我能否在這一點上。SQL:根據正則表達式選擇不同
因此,該表是地址,並且它具有大量相同地址的相似條目。但是,地址有時會有輕微的變化(即,房間號被固定在同一列上,呃)。
像這樣:
ID | place_name | place_street
1 |地名1 | 1001 Mercury Blvd
2 |地名2 | 2388 Jupiter Street
3 |地名1 | 1001 Mercury Blvd,Suite A
4 |地名,一| | 1001 Mercury Boulevard
5 |放置Nam Two | 2388木星街,101室
我想這樣做是在SQL(這是MSSQL),如果可能的話,是做一個查詢是這樣的:
SELECT DISTINCT place_name, place_street where [the first 4 letters of the place_name are the same] && [the first 4 characters of the place_street are the same].
來,我猜到這一點,得到:
Plac | 1001
Plac | 2388
基本上,然後我可以計算出我有什麼主要地址打入另一個表來規範化,因爲其餘的只是輕微的派生。
我希望這是有道理的。
我已經做了一些研究,我發現人們在SQL中使用正則表達式,但是他們中的很多人似乎都在使用C腳本或其他東西。在執行任何正則表達式之前,我是否必須編寫正則表達式函數並將它們保存到SQL Server中?
關於我是否可以用SQL編寫它們,或者如果我有另一個步驟來完成,那麼任何方向都會很棒。
或者如何解決這個問題。
在此先感謝!
當然,你的意思是選擇不同的,對嗎? ;) – 2010-12-10 19:25:39
沒有。 :)由於「group by」子句的作用相同,因此不需要「distinct」,即結果集中的每一行都將是place_name和place_street的前四個字符的唯一組合。 – Matt 2010-12-10 20:31:47