我有一个select语句,它生成一个类型和数量:
我通常有以下
Type Qty
TypeOne 1
TypeTwo 23
TypeThree 1
在某种情况下说,我没有得到两个我得到的值:
Select Type, Qty from Tbl1
我的数据看起来像
Type Qty
TypeOne 1
TypeThree 1
如果我没有得到某个值,我想默认它(在这种情况下,因为TypeTwo不存在,我喜欢将其默认为0并添加该条目)
输入数量
TypeOne 1
TypeTwo 0
TypeThree 1
答案 0 :(得分:4)
一种简单的方法是让Type Table包含Type和default,然后你可以执行以下操作。
Select
type.Type,
COALESCE(tbl1.Qty,type.default) qty
from
type
LEFT JOIN Tbl1
ON type.type = tbl1.type
如果您没有类型表,根据数据库,您可以创建临时表或使用WITH Clause
创建类型和默认值之间的映射以及类型列表< / p>
例如
With Type
( SELECT `TypeOne` type, 0 default
UNION ALL SELECT `TypeTwo` type, 4 default
UNION ALL SELECT `TypeThree` type, 3 default )
Select
type.Type,
COALESCE(tbl1.Qty,type.default) qty
from
type
LEFT JOIN Tbl1
ON type.type = tbl1.type