【问题标题】:Replace a character with another character用另一个字符替换一个字符
【发布时间】:2020-02-08 15:35:51
【问题描述】:

我有一个表格,其中某些行在文本中包含 Œ,我想找到它们并将其替换为 £,但它也在使用 OE 查找文本,我不希望它找到。

目前我已经剥离了所有内容,我只是想在一串字符中找到Œ 的位置。

我尝试了以下 3 行,但都返回相同的结果。

SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9')

SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9' COLLATE Latin1_General_CS_AI )

SELECT CHARINDEX(CHAR(140), cast('1234OE7Œ9' as varchar(20)) COLLATE Latin1_General_CS_AI)

上面的所有结果都返回 5,它是 OE 的起始位置,但我希望它只找到包含 Œ 的记录,它位于字符串中的第 8 位。字符 140 是 Œ

【问题讨论】:

    标签: sql sql-server tsql char ascii


    【解决方案1】:

    我试过你的第一个说法:

    SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9')
    

    在具有排序规则 SQL_Latin1_General_CP1_CI_AS 的数据库上:它返回 8。

    所以这句话可能应该有效:

    SELECT CHARINDEX(CHAR(140), '1234OE7ŒA9' COLLATE SQL_Latin1_General_CP1_CI_AS)
    

    结果:

    【讨论】:

    猜你喜欢
    • 2013-12-03
    • 2021-06-15
    • 2011-11-14
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2019-05-14
    • 2011-04-06
    • 2013-06-26
    相关资源
    最近更新 更多