【问题标题】:Remove special characters from string SQL after character [duplicate]在字符后从字符串 SQL 中删除特殊字符 [重复]
【发布时间】:2019-12-22 19:55:04
【问题描述】:

我当前的数据集有一个值是可接受的value_5cjunk 数据。我要使用 SQL 删除的数据是以 _5c 开头的字符串。

我尝试过使用带有类似功能的替换语句,但它不起作用。

IF OBJECT_ID('mytable') IS NOT NULL drop table mytable
CREATE TABLE mytable
    ([mycol] varchar(50))
;

INSERT INTO mytable
    ([mycol])
VALUES
    ('97W'),
    ('125_5c0a9abac73d4'),
    ('121_5c0a9abac73d4'),
    ('121_5c0a9abac73d4'),
    ('123_5c0a9abac73d4'),
    ('112H'),
    ('111H')
;


SELECT REPLACE([mycol],like'_5c%','')
from mytable

我想看到的是:

97W
125
121
121
123
112H
111H

【问题讨论】:

    标签: sql-server sql-server-2008 special-characters


    【解决方案1】:

    没有匹配到某个模式后替换的功能,但是,由于你只想删除字符,所以完全不需要替换,你可以使用LEFT去除模式之前的字符(使用CHARINDEX 查找模式),以及一个案例表达式,以确保您考虑到未找到模式的情况:

    SELECT CASE WHEN CHARINDEX('_5c', MyCol) = 0 THEN MyCol 
                ELSE LEFT(MyCol, CHARINDEX('_5c', MyCol) - 1) 
            END
    FROM mytable;
    

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 2012-12-16
      • 1970-01-01
      • 2020-11-19
      • 2011-04-11
      • 2016-01-23
      相关资源
      最近更新 更多