Mat*_*ews 7 sql sql-server-2008 sql-like
在几个SQL查询中,我需要检查字段是否以字符开头.有几种方法可以做到,哪一种方法在性能/标准方面更好?
我经常使用
tb.field LIKE 'C%'
Run Code Online (Sandbox Code Playgroud)
但我也可以用
LEFT(LTRIM(tb.Field),1) = 'C'
Run Code Online (Sandbox Code Playgroud)
我很清楚每种情况的用途,但不是在性能方面.
我会选择第一个LIKE C%
,如果有一个索引,它将使用该字段的索引,而不是必须进行全表扫描.
如果您确实需要LTRIM
在查询中包含空白修剪,则可以使用该值创建一个持久计算列LEFT(LTRIM(tb.Field), 1)
并在其上放置索引.