我有很多地址记录,记录中显示地址前缀,然后是“SR”,然后是后缀。我想要做的是将“SR”替换为“State Route”,并保留前缀和后缀不变。我试过:
UPDATE sites
SET address = REPLACE(address, ' SR ', ' State Route ')
这会将整个列替换为“% State Route %”。我真的无法做到
left(nnnn)+' State Route' + right(nnnn)
,因为左右部分可能长度不同。
CREATE TABLE Sites (
address varchar(200) NOT NULL DEFAULT ''
)
INSERT INTO Sites (address)
VALUES
('123 SR 45, Springfield, IL 62704'),
('789 E SR 89A, Sedona, AZ 86336'),
('101 SR 10A, Pensacola, FL 32503'),
('202 West SR 120, Elkhart, IN 46514'),
('303 N. SR 200, Starke, FL 32091'),
('404 SR 9 Southeast, Snohomish, WA 98296'),
('505 South SR 49, Mariposa, CA 95338'),
('606 SR 22 W, Circleville, OH 43113'),
('707 East SR 134, Wilmington, OH 45177')
SELECT
Address,
REPLACE(Address, ' SR ', ' State Route ') AS AddressDisplay
FROM Sites
地址 | 地址显示 |
---|---|
123 SR 45,斯普林菲尔德,IL 62704 | 123 State Route 45, 斯普林菲尔德, IL 62704 |
789 E SR 89A,塞多纳,AZ 86336 | 789 E State Route 89A,塞多纳,AZ 86336 |
101 SR 10A,彭萨科拉,FL 32503 | 101 State Route 10A,彭萨科拉,FL 32503 |
202 West SR 120, 埃尔克哈特, IN 46514 | 202 West State Route 120, 埃尔克哈特, IN 46514 |
303 N.SR 200,斯塔克,FL 32091 | 303 N. State Route 200,斯塔克,FL 32091 |
404 SR 9 东南,斯诺霍米什,WA 98296 | 404 号国道 9 号东南部,斯诺霍米什,华盛顿州 98296 |
505 South SR 49,马里波萨,CA 95338 | 505 South State Route 49, 马里波萨, CA 95338 |
606 SR 22 W,瑟克尔维尔,俄亥俄州 43113 | 606 State Route 22 W, Circleville, OH 43113 |
707 East SR 134,威尔明顿,俄亥俄州 45177 | 707 东 134 号国道,威尔明顿,俄亥俄州 45177 |