【问题标题】:SQL get all records which contains invalid character for e-diaeresisSQL 获取所有包含电子分音符号无效字符的记录
【发布时间】:2020-04-14 07:42:50
【问题描述】:

我在表中有一些值,其中文本包含 而不是 ë

如何在 SQL 中用ë 替换这些字符?

我试过了

SELECT * 
FROM [dbo].[Table] 
WHERE [dbo].[Table].CustomValue LIKE '%A«%'

如何更新查询中的那些项目?

【问题讨论】:

  • 不应该是SELECT * FROM [dbo].[Table] WHERE [dbo].[Table].CustomValue LIKE '%A«%'吗?
  • @Rain336 好的,太棒了,我忘了LIKE :) ... 如何用正确的字符更新这些字符?
  • 您要选择更正的文本还是更新您的表格以使用更正的文本?
  • 这能回答你的问题吗? PHP & mySQL - ë written as ë

标签: sql sql-server


【解决方案1】:

如果你只想SELECT数据然后

SELECT *, REPLACE(CustomValue, 'A«', N'ë')
FROM [dbo].[Table] 
WHERE [dbo].[Table].CustomValue LIKE '%A«%'

如果你真的需要UPDATE数据那么

UPDATE [dbo].[Table]
SET CustomValue = REPLACE(CustomValue, 'A«', N'ë')
WHERE [dbo].[Table].CustomValue LIKE '%A«%'

【讨论】:

    【解决方案2】:

    带有REPLACE 函数的UPDATE 语句应该可以解决问题。

    UPDATE [dbo].[Table]
    SET CustomValue = REPLACE(CustomValue, 'A«', 'ë')
    WHERE CustomValue LIKE '%A«%'
    

    【讨论】:

      【解决方案3】:

      也许你只是在寻找

      update dbo.table 
      set customvalue = replace(customvalue, 'A«', 'ë')
      where customvalue like '%A«%';
      

      但也许您的排序规则不允许字符“ë”。在这种情况下,您必须先更改列定义。例如

      alter table dbo.table
        alter column customvalue nvarchar(1000) collate latin1_general_cs_as;
      

      【讨论】:

        猜你喜欢
        • 2013-04-08
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        • 2015-03-14
        • 1970-01-01
        • 2021-09-17
        相关资源
        最近更新 更多