我在查询中使用了 group by 和 having 子句,并且使用别名似乎可以正常工作。无论我输入什么值,或者运算符 (<, >) 它都会返回正确的结果。根据逻辑查询处理,这应该不起作用,但它确实起作用。此外,即使我在有子句的 count 函数中放入了一些无意义的字符串,它仍然有效。
我完全感到困惑!
use TSQL2014;
select
c.categoryname,
count(p.productid) as 'TotalProducts'
from Production.Products p
left join Production.Categories c
on p.categoryid = c.categoryid
group by c.categoryname
--having count(p.productid) > 10
having count('aaaaaa') > 10
order by 'TotalProducts' desc;