gpt4 book ai didi

sql - 比较字符串结尾的最佳方法是使用 RIGHT、LIKE 还是其他?

转载 作者:行者123 更新时间:2023-12-02 10:03:17 24 4
gpt4 key购买 nike

我需要将字符串的结尾与存储过程中可能的结尾列表进行比较。会被叫很多,大概有10-15个候选结局。此时,仅使用代码的解决方案比创建专用于此的表更好。类似的东西:

IF (ENDSWITH(@var, 'foo') OR
ENDSWITH(@var, 'bar') OR
ENDSWITH(@var, 'badger') OR
ENDSWITH(@var, 'snake'))
(
)

我正在寻找速度和可维护性方面的最佳方法。我所知道的候选人是

  • 对,到目前为止我最喜欢的,但这意味着我必须对字符串长度进行硬编码,因此很容易出错。这也意味着多次剪切源字符串。

    IF ((LEN(@var) >= 3 AND RIGHT(@var, 3) = 'foo')) OR ...
  • 喜欢,可能会慢一些,但更干净一点

    IF (@var LIKE '%foo') OR ...
  • CHARINDEX,很可能较慢,因为它搜索整个字符串

  • SUBSTRING,很可能相当于 RIGHT,而且更难看

  • SQLCLR 创建我自己的 ENDSWITH,速度非常快

可能还有我不知道的更好的方法。你觉得怎么样?

最佳答案

针对 SQL 进行优化的最佳方法可能是存储 REVERSE索引的另一列中的字符串值,并使用 LEFT 或 LIKE 搜索该列的左侧。

关于sql - 比较字符串结尾的最佳方法是使用 RIGHT、LIKE 还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394276/

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