2011-11-17 135 views
0

我有產生種類和數量的select語句:SQL默認值

我通常有以下

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 
+2

你有一個類型的表? –

+1

我們需要看到整個'SELECT'語句。 –

+0

你是說你想看到0數量的行嗎? –

回答

4

一個簡單的方法是有一個包含列類型和默認值的類型表,然後您可以執行以下操作。

Select 
     type.Type, 
     COALESCE(tbl1.Qty,type.default) qty 
    from 
     type 
     LEFT JOIN Tbl1 
     ON type.type = tbl1.type 

如果你沒有一個類型的表,這取決於你的數據庫既可以創建臨時表或使用WITH Clause創建類型和默認值之間的映射,以及各類

列表

例如

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