次のように私はあなたの条件を解決しようとした:
DECLARE @LOCATION TABLE (LOCATION VARCHAR(200))
DECLARE @NEW_LOCATION TABLE (CITY VARCHAR(200),STATE VARCHAR(200),ZIP VARCHAR(200))
INSERT INTO @LOCATION VALUES('[New York, VA 50000]')
INSERT INTO @LOCATION VALUES('[New York, West Virginia 50000-0000]')
INSERT INTO @NEW_LOCATION
SELECT REPLACE(SUBSTRING(LOCATION,0,CHARINDEX(',',LOCATION)),'[',''),
REPLACE(REPLACE(LOCATION,SUBSTRING(LOCATION,0,CHARINDEX(',',LOCATION)+1),''),
REVERSE(SUBSTRING(REVERSE(LOCATION),0,CHARINDEX(' ',REVERSE(LOCATION)))),''),
REPLACE(REVERSE(SUBSTRING(REVERSE(LOCATION),0,CHARINDEX(' ',REVERSE(LOCATION)))),']','')
FROM @LOCATION
SELECT * FROM @NEW_LOCATION
を使用し、その後、あなたの街や郵便番号を与える第一スペース(逆の結果)までの左の文字列を、逆 ''第一まで残さ市を排除する機能を2回置き換えると、結果をトリミングして、あなたの状態を保ちます。私は誰かが正規表現を思い付くかもしれないと思うけれど、それは速いです。私はそれらに堪能ではありません。 – xQbert