我有字母數字字符A-Z和0-9T-SQL字符串處理,替換,比較,模式匹配,正則表達式
字符和數字被包含在字符串中的短字符串。
我想剝離空格,並將每個字符串與僅匹配其中一個的「模式」進行比較。模式使用A表示任何字符A-Z和9表示任何0-9。
的6種模式是:
A99AA
A999AA
A9A9AA
AA99AA
AA999AA
AA9A9AA
我有這些與另一列的表,用正確地定義空間: -
pattern PatternTrimmed
A9 9AA A99AA
A99 9AA A999AA
A9A 9AA A9A9AA
AA9 9AA AA99AA
AA99 9AA AA999AA
AA9A 9AA AA9A9AA
我使用SQL Server 2005中,和我不想讓34個替換語句將每個字符和數字改爲A和9。
有關如何以簡潔的方式實現此目的的建議,請。
這是我想避免什麼: -
update postcodes set Pattern = replace (Pattern, 'B', 'A')
update postcodes set Pattern = replace (Pattern, 'C', 'A')
update postcodes set Pattern = replace (Pattern, 'D', 'A')
update postcodes set Pattern = replace (Pattern, 'E', 'A')
等
和
update postcodes set Pattern = replace (Pattern, '0', '9')
update postcodes set Pattern = replace (Pattern, '1', '9')
update postcodes set Pattern = replace (Pattern, '2', '9')
等
基本上,我試圖把英國郵政編碼的類型在一個電話中心,由一個imbecile,模式匹配輸入的郵編對上述6種模式之一,並找出插入空間的位置。
更新郵政編碼設定模式=取代(圖案, 'B', 'A') 更新郵政編碼設定模式=取代(圖案, 'C', 'A') 更新郵政編碼設定模式=取代(圖案,「d ','A') update postcodes set Pattern = replace(Pattern,'E','A') 等 – cometbill