8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何将值与表中包含通配符的值进行匹配

spd 2月前

71 0

假设我有一张表,其中包含一个带有值的列。其中一些值中嵌入了通配符。SearchVal AttachmentTest2 SomethingElse AttachmentTest% 给定字符串 Attachmen...

假设我有一张表,其中包含一个带有值的列。其中一些值中嵌入了通配符。

搜索值
附件测试2
其他
附件测试%

给定字符串 AttachmentTest2,我想要一个返回第一行和第三行的查询,本质上返回使用表中的表达式搜索时返回 AttachmentTest2 的任何行。

我试过

Select * from MyTable Where 'AttachmentTest2' like SearchVal

但它并没有给我所有匹配的结果,只有 AttachmentTest2。

这可以通过查询来实现吗?

帖子版权声明 1、本帖标题:如何将值与表中包含通配符的值进行匹配
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由spd在本站《sql-server》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 在没有聚集索引的表(堆表)中,数据页没有链接在一起 - 因此遍历页面需要 查找索引分配图 .

    但是,聚簇表的 数据页链接在双向链表中 ,这使得顺序扫描速度更快。当然,作为交换,您需要处理保持数据页在 和 上的顺序的开销 INSERT , UPDATE DELETE 但是,堆表需要第二次写入 IAM。

    如果您的查询有一个 RANGE 运算符(例如 SELECT * FROM TABLE WHERE Id BETWEEN 1 AND 100 :),那么聚簇表(按保证顺序排列)会更高效 - 因为它可以使用索引页来查找相关的数据页。堆必须扫描所有行,因为它不能依赖于排序。

    当然,聚集索引允许您执行聚集索引查找,这对于性能来说几乎是最佳的......没有索引的堆总是会导致表扫描。

    所以:

    • p5

    • p6

    • p7

    • p8

    微软有一份 白皮书 ,将聚集索引与堆上的等效非聚集索引进行了比较(与我上面讨论的并不完全相同,但很接近)。他们的结论基本上是在所有表上放置聚集索引。我会尽力总结他们的结果(再次注意,他们在这里实际上是在比较非聚集索引和聚集索引 - 但我认为它们是相对可比的):

    • INSERT 性能:由于堆需要第二次写入,因此聚集索引获胜约 3%。
    • UPDATE 性能:由于堆需要第二次查找,因此聚集索引获胜约 8%。
    • DELETE 性能:由于需要从 IAM 中对堆进行第二次查找和第二次删除,因此聚集索引获胜约 18%。
    • 单一 SELECT 性能:由于堆需要第二次查找,因此聚集索引获胜约 16%。
    • 范围 SELECT 性能:由于堆的随机排序,聚集索引获胜约 29%。
    • 并发 INSERT :由于聚集索引的页面拆分,堆表在负载下获胜 30%。
返回
作者最近主题: