2013-05-31 72 views
1

我使用SQL Server 2008中的啓動帶號,SQL Server 2008中 - 從字符串

我有有記錄如下表名爲當地人: -

447455 - 1 ABERCORN COTTAGES 
447456 - 12 ACACIA WALK 
447457 - 13 ACTON HILL STUDIOS 
447458 - 21 ADELAIDE COTTAGES 
447459 - 321 ALBERT COTTAGES 
456155 - 722 CLIVE COURT

我想要做的就是刪除所有號碼在「街」列(可能使用更換),所以記錄更新: -

447455 - ABERCORN COTTAGES 
447456 - ACACIA WALK 
447457 - ACTON HILL STUDIOS 
447458 - ADELAIDE COTTAGES 
447459 - ALBERT COTTAGES 
456155 - CLIVE COURT

我曾嘗試: -

UPDATE LOCALS 
SET Street = REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (str(50), '0', ''), '1', ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''), '7', ''), '8', ''), '9', '') 
where AtoZIndex > '447454' 
    and AtoZIndex < '457309' 

街道列NVARCHAR(50)

但是,這只是做的所有記錄的空白,對我怎麼能解決這個問題有什麼建議?

+0

這個問題並沒有表現出任何的研究工作。 **做你的作業很重要**。告訴我們你發現了什麼,***爲什麼它不符合你的需求。這表明你已經花時間去嘗試幫助你自己了,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 – Kermit

+0

請幫助我們來幫助你...你的表中的字段是什麼 - 它們的類型是什麼,這些字段在你的例子中分成了哪些部分。你是如何得到顯示的輸出結果(是一個選擇語句?)沒有這些答案,沒有辦法回答你的問題。 – Hogan

+0

使用'CHARINDEX'查找空格字符(即分隔數字和文本)。使用'SUBSTRING'來提取文本,跟在由'CHARINDEX'返回的位置之後。閱讀文檔[這裏](http://msdn.microsoft.com/en-us/library/ms186323.aspx) – shahkalpesh

回答

3

這將截斷的第一個字母字符:

UPDATE LOCALS SET 
    Street = SUBSTRING(Street, PATINDEX('%[A-Z]%', Street), LEN(Street)) 
WHERE 
    AtoZIndex > '447454' and AtoZIndex < '457309' 
2

亨特用於第一[A-Z]字符(假設地址的非數字部分開始在範圍A-Z

select PATINDEX('%[A-Z]%', '447455 - 1 ABERCORN COTTAGES') 
15 

拿起連字符位置

select PATINDEX('% - %', '447455 - 1 ABERCORN COTTAGES') 
7 

拿起領先數字片段

select SUBSTRING('447455 - 1 ABERCORN COTTAGES', 1, 
PATINDEX('% - %', '447455 - 1 ABERCORN COTTAGES')) 
447455 

Pick了地址

select SUBSTRING('447455 - 1 ABERCORN COTTAGES', 
PATINDEX('%[A-Z]%', '447455 - 1 ABERCORN COTTAGES'), 
LEN('447455 - 1 ABERCORN COTTAGES')) 
ABERCORN COTTAGES 

的文本片段拼接的片段連字符分隔