ros*_*mcm 1 sql count asp-classic
说我有这样一张桌子:
Field1 Field2 Field3 Field4
fred tom fred harry
tom tom
dick harry
harry
Run Code Online (Sandbox Code Playgroud)
我想确定每个领域已完成的比例.
我可以执行:
SELECT COUNT (Field1) WHERE (Field1 <> '') AS Field1Count
SELECT COUNT (Field2) WHERE (Field2 <> '') AS Field2Count
SELECT COUNT (Field3) WHERE (Field3 <> '') AS Field3Count
SELECT COUNT (Field4) WHERE (Field4 <> '') AS Field4Count
Run Code Online (Sandbox Code Playgroud)
是否可以将这些单独的SQL语句汇总到一个将在一次命中中返回4个结果的语句?这样做是否有任何性能优势(假设在实践中列和行的数量可能非常大)?
你可以这样做:
select
sum(case when Field1 <> '' then 1 else 0 end) as Field1Count,
sum(case when Field2 <> '' then 1 else 0 end) as Field2Count,
sum(case when Field3 <> '' then 1 else 0 end) as Field3Count,
sum(case when Field4 <> '' then 1 else 0 end) as Field4Count
from TheTable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |