2014年9月5日 星期五

SELECT Case When判斷式應用


http://tomkuo139.blogspot.tw/2009/05/plsql-select.html

在 Oracle PL/SQL 中, 可以利用兩種判斷方式, 如下:

Decode 語法
SELECT DECODE( 欲判斷的資料, 判斷值1, 相等的設定值1
                           , 判斷值2, 相等的設定值2
                           , ...
                           , 不相等的設定值
             )
  FROM ...;

Decode 範例
SELECT DECODE( &DATA, '100', 'AAA'
                    , '200', 'BBB'
                    , '300', 'CCC'
                    , '400', 'DDD'
                    , 'NONE'
             )
  FROM DUAL;


Case 語法
SELECT Case When (判斷式1) Then 設定值1
            When (判斷式2) Then 設定值2
            ...
            Else 其他設定值
       End 自訂Case_Name
  FROM ...;


Case 範例
SELECT col1
     , CASE WHEN ( col1=0 ) then 'A'
            WHEN ( col1 in (1,2) ) then 'B'
            WHEN ( col1 between 3 and 5 ) then 'C'
            WHEN ( col1 > 5 ) then (select '1' from dual)
            ELSE 'XYZ'
        END case_col1
  FROM temp;
http://msdn.microsoft.com/zh-tw/library/ms178544.aspx

GROUPING 是用來區別 ROLLUP、CUBE 或 GROUPING SETS 傳回的 null 值與標準 null 值。 因 ROLLUP、CUBE 或 GROUPING SETS 運算之結果而傳回的 NULL 是 NULL 的特殊使用。 這用來作為結果集中的資料行預留位置,代表全部。

http://kyleap.blogspot.tw/2013/09/aspnetgridview-sql.html
NoteGROUPING (Transact-SQL)指出是否彙總 GROUP BY 清單中指定的資料行運算式。 GROUPING 傳回 1 時,表示會在結果集中彙總,傳回 0 則不會。 當指定 GROUP BY 時,GROUPING 只能在 SELECT





沒有留言: