SQL默认值

时间:2011-11-17 20:27:28

标签: sql

我有一个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

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