SQL更新列值时,如何移除结果的前置空格?
解决提取字符串时的前置空格问题
针对你遇到的提取结果带前置空格的问题,有两种简洁的调整方式,都不需要修改Category列本身:
方法一:仅移除前置空格(推荐)
使用LTRIM函数专门清除字符串开头的空白字符,精准解决你的问题:
UPDATE tech_table SET name = LTRIM(SUBSTR(Category, INSTR(Category, '-', 1, 2) + 1)) WHERE category LIKE '%-%-%'
LTRIM只会处理字符串左侧的空格,不会影响内容中间或结尾的空格(如果存在的话),完全匹配你需要保留有效内容的需求。
方法二:移除所有空格(按需选择)
如果你确认提取的内容里除了前置空格外没有其他需要保留的空格,也可以用REPLACE函数清除所有空格:
UPDATE tech_table SET name = REPLACE(SUBSTR(Category, INSTR(Category, '-', 1, 2) + 1), ' ', '') WHERE category LIKE '%-%-%'
注意:这个方法会把提取内容里所有空格都删掉,比如如果有"PH ONE"会变成"PHONE",根据你的实际场景选择即可。
执行上述任一语句后,就能得到你想要的目标结果:
| Category | Name |
|---|---|
| T - 1029 - PHONE | PHONE |
| T-2629172-LAPTOP | LAPTOP |
| T-26124-PC | PC |
| T-22 | |
| T - 1029 - PHONE | PHONE |
内容的提问来源于stack exchange,提问作者R Sem
相关产品推荐
相关产品推荐

