gpt4 book ai didi

sql - 我怎样才能使这个查询 sargable?

转载 作者:行者123 更新时间:2023-12-04 10:19:34 26 4
gpt4 key购买 nike

我需要从我的表中检索行,而没有以某个值开头的字段:

我目前正在使用这样一个简单的查询:

SELECT A.ID FROM SCHEMA.TABLE A WHERE A.FIELD NOT LIKE 'WORD%'

但是,我了解到 A.FIELD有时在“WORD”之前包含不同数量的空格。

显然,我可以使用另一个通配符重新编写查询,但这会使其变得不可sargable 并减慢它的速度(此查询在相当大的表上运行,并且需要尽可能高效)。

有什么办法可以编写一个可查询的查询来解决这个问题吗?

最佳答案

如果由于任何原因无法清理数据,一种选择是向表中添加一个计算列,以修剪所有前导和尾随空格:

ALTER TABLE YourTable
ADD TrimmedYourColumn as (RTRIM(LTRIM(YourColumn)))

并索引计算列:
CREATE INDEX IX_YourTable_TrimmedYourColumn 
ON YourTable (TrimmedYourColumn)

现在改为搜索该列:
SELECT A.ID FROM YourTable A WHERE TrimmedYourColumn NOT LIKE 'WORD%'

关于sql - 我怎样才能使这个查询 sargable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32745096/

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