[英]SQL - How to Categorize a Case Statement?
你不需要在 CASE 中。
SELECT blue, red, (blue > 0) + (red > 0) colors,
apple, grapes, (apple > 0) + (grapes > 0) fruit
FROM source_table
源表中的值不應為 NULL。
SELECT
*,
((CASE WHEN apple > 0 THEN 1 ELSE 0 END) + (CASE WHEN WHEN grapes > 0 THEN 1 ELSE 0 END)) as fruit,
((CASE WHEN red > 0 THEN 1 ELSE 0 END) + (CASE WHEN blue > 0 THEN 1ELSE 0 END)) as colors
from table
假設源數據處於旋轉狀態
with cte as (
select 'john' as name, 2 as blue, 3 as red, 2 as apple, 4 as grape union all
select 'tom', 0 , 8, 0, 0
)
select
name
, blue
, red
, coalesce((blue > 0),0)
+ coalesce((red > 0),0)
as colours
, apple
, grape
, coalesce((apple > 0),0)
+ coalesce((grape > 0),0)
as fruits
from cte
姓名 | 藍色 | 紅色 | 顏色 | 蘋果| 高分辨率照片| CLIPARTO 葡萄| 高分辨率照片| CLIPARTO 水果 :--- | ---: | --: | ------: | ----: | ----: | -----: 約翰 | 2 | 3 | 2 | 2 | 4 | 2 湯姆| 0 | 8 | 1 | 0 | 0 | 0
db<> 在這里擺弄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.