我在同一列中有两个不同的值。 示例: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