如何在 SQL Server where 子句中忽略 ' 字符?

安德烈·诺比利

我在查询SQL Server 时遇到以下问题

我有这个简单的查询:

SELECT *
FROM [PROT_UTENTI]
WHERE 
    Nome = 'Paolo D''Aannuntis'

通过Nome字段查找用户(代表姓名,我知道,这很可怕,但我无法更改数据库,因为它是生产中的旧遗留应用程序)。

如您所见,姓氏 ( D'Annuntis ) 包含'字符(我通过将 '' 加倍来转义)。

问题是我正在使用Nome执行此查询,该值从另一个数据库中提取它(它涉及迁移过程),其中保存了相同的Nome字段,而没有将'字符添加到姓氏中。

所以我正在执行这个查询:

SELECT *
FROM [PROT_UTENTI]
WHERE 
    Nome = 'Paolo DAannuntis'

反而

SELECT *
FROM [PROT_UTENTI]
WHERE 
    Nome = 'Paolo D''Aannuntis'

发现 0 结果。

我的问题是:有一种方法可以忽略'所以 where 子句Nome = 'Paolo DAannuntis'可以找到相同的结果Nome = 'Paolo D''Aannuntis'

圭多

您可以在搜索查询中用空替换任何 '

SELECT *
FROM   [PROT_UTENTI]
WHERE  replace(Nome, '''', '') = 'Paolo DAannuntis'

您也可以在两侧进行更换

WHERE  replace(Nome, '''', '') = replace('Paolo D''Aannuntis', '''', '')

您写道,该值是从迁移中的另一个数据库中提取的,
所以我猜您会有一个变量。

declare @nome varchar(100) = 'Paolo D''Aannuntis' -- filled by your process

SELECT *
FROM   [PROT_UTENTI]
WHERE  replace(Nome, '''', '') = replace(@nome, '''', '')

这将找到您的行,无论变量中是否有引号或 [PROT_UTENTU].nome

这会影响查询的性能,所以我希望你的表中没有数百万行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Where子句中转义特殊字符?

来自分类Dev

如何在 SQL Server 的 where 子句中使用别名

来自分类Dev

如何在SQL Server中的数据透视表语句中编写where子句

来自分类Dev

SQL Server:WHERE子句中的IF条件

来自分类Dev

WHERE子句中的SQL Server浮点

来自分类Dev

where子句中的SQL Server条件

来自分类Dev

Where 子句中的 SQL Server 条件语句

来自分类Dev

where 子句中的 SQL Server 时区

来自分类Dev

SQL Server 无法在 where 子句中将字符串转换为日期(代码 241)

来自分类Dev

SQL Server 2019忽略WHERE子句吗?

来自分类Dev

如何在SQL的where子句中使用sum?

来自分类Dev

如何在Sql的where子句中获得此条件

来自分类Dev

如何在where子句中演示SQL注入?

来自分类Dev

如何在SQL的Where子句中使用View元素

来自分类Dev

如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

来自分类Dev

如何从SQL的where子句中删除语句

来自分类Dev

如何在SQL Server中使用where子句使用if else

来自分类Dev

SQL Server:如何提高WHERE子句中具有多个CTE和子查询的查询的性能

来自分类Dev

如何在SQL Server Like子句中转义通配符

来自分类Dev

SQL CONCAT字符串+ WHERE子句中的列

来自分类Dev

在SQL的where子句中附加字符串

来自分类Dev

警告:在WHERE子句中使用IN的SQL Server UPDATE

来自分类Dev

在where in子句中返回所有结果(SQL Server)

来自分类Dev

从SQL Server中的where子句中排除函数

来自分类Dev

SQL Server:根据where子句中的条件使用AND或OR

来自分类Dev

在where子句中使用位列SQL Server

来自分类Dev

SQL Server上带有IN的WHERE子句中的CASE语法

来自分类Dev

选择where子句中的SQL Server CASE语句

来自分类Dev

SQL Server:WHERE子句中具有IN条件的CASE语句

Related 相关文章

  1. 1

    如何在SQL Where子句中转义特殊字符?

  2. 2

    如何在 SQL Server 的 where 子句中使用别名

  3. 3

    如何在SQL Server中的数据透视表语句中编写where子句

  4. 4

    SQL Server:WHERE子句中的IF条件

  5. 5

    WHERE子句中的SQL Server浮点

  6. 6

    where子句中的SQL Server条件

  7. 7

    Where 子句中的 SQL Server 条件语句

  8. 8

    where 子句中的 SQL Server 时区

  9. 9

    SQL Server 无法在 where 子句中将字符串转换为日期(代码 241)

  10. 10

    SQL Server 2019忽略WHERE子句吗?

  11. 11

    如何在SQL的where子句中使用sum?

  12. 12

    如何在Sql的where子句中获得此条件

  13. 13

    如何在where子句中演示SQL注入?

  14. 14

    如何在SQL的Where子句中使用View元素

  15. 15

    如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

  16. 16

    如何从SQL的where子句中删除语句

  17. 17

    如何在SQL Server中使用where子句使用if else

  18. 18

    SQL Server:如何提高WHERE子句中具有多个CTE和子查询的查询的性能

  19. 19

    如何在SQL Server Like子句中转义通配符

  20. 20

    SQL CONCAT字符串+ WHERE子句中的列

  21. 21

    在SQL的where子句中附加字符串

  22. 22

    警告:在WHERE子句中使用IN的SQL Server UPDATE

  23. 23

    在where in子句中返回所有结果(SQL Server)

  24. 24

    从SQL Server中的where子句中排除函数

  25. 25

    SQL Server:根据where子句中的条件使用AND或OR

  26. 26

    在where子句中使用位列SQL Server

  27. 27

    SQL Server上带有IN的WHERE子句中的CASE语法

  28. 28

    选择where子句中的SQL Server CASE语句

  29. 29

    SQL Server:WHERE子句中具有IN条件的CASE语句

热门标签

归档