【问题标题】:SQL rtrim select and group bySQL rtrim 选择和分组依据
【发布时间】:2012-01-23 15:20:31
【问题描述】:

如果您将 rtrim 放入 SELECT 并再次放入 GROUP BY,这是否效率低下,因为它 rtriming 两次,一次在 select 中,一次在 group by 中?比如……

SELECT
rtrim(people.FORENAME1)+ ' ' + rtrim(people.SURNAME)AS Full_Name,

FROM 
my table

GROUP BY 
rtrim(people.FORENAME1)+ ' ' + rtrim(people.SURNAME)

【问题讨论】:

  • 我想你可以简单地避免在GROUP BY 子句中进行修剪,并将其留在SELECT 子句中,这应该足以使查询变得可搜索,根据@JNK 的回答。 (并且不要忘记在 FROM 子句中的某处包含 people 表。)

标签: sql sql-server syntax ssrs-2008 trim


【解决方案1】:

它可能只执行一次功能,但效率低下,因为它是非 SARGable。

由于您正在应用一个函数,因此优化器不能使用任何引用这些字段的现有索引。它在运行之前不知道函数的结果,因此它需要处理表中的每一行。

【讨论】:

  • 这意味着...您最好使用 VARCHAR() 而不是 CHAR() 并修剪输入数据,这样您在处理数据时就不需要 TRIM :)
猜你喜欢
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
相关资源
最近更新 更多