我在同一列中有兩個不同的值。 示例:ColumnName = COUNTY 示例數據:「NSW New South Wales」 如何設置更新/替換查詢以刪除NSW縮寫和空格並只有「New South Wales」? 我每個縣都有不同的縮寫,我討厭逐個做一個替換函數。SQL刪除每個縮寫字符串,直到一個空格
1
A
回答
1
嘗試使用SUBSTRING_INDEX
與REPLACE()
UPDATE YourTable t
SET t.YourColumn = LTRIM(REPLACE(t.YourColumn,SUBSTRING_INDEX(t.YourColumn,' ',1),''))
對於SQL-Server一起使用SUBSTRING
和CHARINDEX
:
UPDATE YourTable t
SET t.yourColumn = SUBSTRING(t.YourColumn,CHARINDEX(t.YourColumn,' ') + 1,100)
0
SELECT SUBSTR(從位置(」'中的數據的數據)1)FROM測試。 randomdata; (數據中的'''')+1);}}}
位置+ 1保護沒有空格的字符串;)
0
試試這個
UPDATE `tabl1` SET `col1` = TRIM(REPLACE("NSW New South Wales","NSW", "")) WHERE `col1` LIKE 'NSW%'
或者這樣:
UPDATE `tabl1` `t`
SET `t`.`col1` = TRIM(
REPLACE(
`t`.`col1`,
SUBSTRING_INDEX(`t`.`col1`, ' ', 1),
""
)
)
WHERE LENGTH(SUBSTRING_INDEX(`t`.`col1`, ' ', 1)) <= 3
是縮寫總是3個字母? – splash58
他們總是在那裏嗎? (也許你應該添加更多的樣本表數據和預期的結果。) – jarlh
縮寫的最大值是3個字母。 – Angie