如果我有一个简单的查询,如下所示,它返回产品中的所有商品;
SELECT Item
FROM Products
有没有一种方法可以对值进行分组并为每组值都有一个别名?
例如;
以上查询将返回类似于以下内容的内容;
cauliflower
celery
endive
fiddleheads
frisee
fennel
greens
Lamb
Beef
Chicken
所需结果:
第1组称为蔬菜;
cauliflower
celery
endive
fiddleheads
frisee
fennel
greens
第2组称为“含肉”;
Lamb
Beef
Chicken
在我的select语句中是否可以执行以下操作;
SELECT Meat, Vegetables
FROM Products
然后返回;
cauliflower
celery
endive
fiddleheads
frisee
fennel
greens
Lamb
Beef
Chicken
答案 0 :(得分:2)
您可以使用SQL创建组,但是语言本身无法基于“ Lamb”的字符串值确定Lamb是肉还是蔬菜。您将必须手动在查询中创建组,或添加具有该值的新列,以便在系统中轻松使用
答案 1 :(得分:0)
我想您需要简单的where
子句:
SELECT Item, <do aggregation whatever you need (i.e. count(), sum(), min/max)>
FROM Products
WHERE Item = 'meat'
GROUP BY Item;
例如,您可以使用case
表达式来定义组:
SELECT (case when Item in ('lamb', 'beef', 'chicken') then 'meat' else 'other' end) as Item,
<do aggregation whatever you need (i.e. count(), sum(), min/max)>
FROM Products
GROUP BY (case when Item in ('lamb', 'beef', 'chicken') then 'meat' else 'other' end);