Dar*_*lic 4 sql-server count sql-server-2014 where
有没有办法在 COUNT 中有 WHERE 子句?或者如何用一些条款来计算?
select
a
b,
count(c where t1.u='UAE') as c1
from t1
Run Code Online (Sandbox Code Playgroud)
我正在使用 MS SQL Server 2014
ype*_*eᵀᴹ 11
不,您拥有的语法无效,可以通过使用CASE表达式进行更正。
(我猜你有一个GROUP BY a, b,否则你会得到一个错误)。
select
a
b,
count(case when t1.u = 'UAE' then c else null end) as c1
from t1
group by a, b ;
Run Code Online (Sandbox Code Playgroud)
请注意,这ELSE NULL是多余的并且可以删除,因为ELSE无论如何这是默认行为:
select
a
b,
count(case when t1.u = 'UAE' then c end) as c1
from t1
group by a, b ;
Run Code Online (Sandbox Code Playgroud)
有一种(SQL 标准)FILTER语法接近您的尝试,但 SQL Server 尚未实现它:
select
a
b,
count(c) filter (where t1.u = 'UAE') as c1
from t1
group by a, b ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9661 次 |
| 最近记录: |