gpt4 book ai didi

sql-server - 如何在 SQL Server 中使用 LIKE 运算符找到 ' % '?

转载 作者:行者123 更新时间:2023-12-01 19:09:41 26 4
gpt4 key购买 nike

我有一个列名地址,其中包含一些地址,中间有“%”:

Address
--------------------
Aman Ja%lan%
Stree% Ro%ad

等等等等

如何编写 LIKE 运算符来查找该模式?

我尝试过:

declare @var char(1)
set @var='!%'
select Address from Accomodation where Address like '%'+@var+'%'

最佳答案

我会用

WHERE columnName LIKE '%[%]%'

SQL Server 存储字符串摘要统计信息,用于估计与 LIKE 子句匹配的行数。使用方括号语法时,基数估计可以更好,并导致更合适的计划。

this Connect Item 的回复州

We do not have support for precise cardinality estimation in the presence of user defined escape characters. So we probably get a poor estimate and a poor plan. We'll consider addressing this issue in a future release.

一个例子

CREATE TABLE T
(
X VARCHAR(50),
Y CHAR(2000) NULL
)

CREATE NONCLUSTERED INDEX IX ON T(X)

INSERT INTO T (X)
SELECT TOP (5) '10% off'
FROM master..spt_values
UNION ALL
SELECT TOP (100000) 'blah'
FROM master..spt_values v1, master..spt_values v2


SET STATISTICS IO ON;
SELECT *
FROM T
WHERE X LIKE '%[%]%'

SELECT *
FROM T
WHERE X LIKE '%\%%' ESCAPE '\'

第一个查询显示 457 个逻辑读取,第二个查询显示 33,335 个逻辑读取。

关于sql-server - 如何在 SQL Server 中使用 LIKE 运算符找到 ' % '?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com