Tuesday, December 18, 2007

How to implement if-then-else or emulate the Oracle decode function/crosstab (ASE 11.5 +)

How to implement if-then-else or emulate the Oracle decode function/crosstab (ASE 11.5 +)
----------------------------------------------------------------------------------

If you are using ASE version 11.5 or later, the simplest way to implement if-then-else or implement the Oracle decode is with the CASE statement.

SELECT STUDENT_ID,
(CASE WHEN COURSE_ID = 101 THEN 1 ELSE 0 END) AS COURSE_101,
(CASE WHEN COURSE_ID = 105 THEN 1 ELSE 0 END) AS COURSE_105,
(CASE WHEN COURSE_ID = 201 THEN 1 ELSE 0 END) AS COURSE_201,
(CASE WHEN COURSE_ID = 210 THEN 1 ELSE 0 END) AS COURSE_210,
(CASE WHEN COURSE_ID = 300 THEN 1 ELSE 0 END) AS COURSE_300
GROUP BY STUDENT_ID
ORDER BY STUDENT_ID

SELECT
CASE WHEN PRODUCT_SIZE = 'SMALL' THEN 'Petit'
ELSE 'Grand'
FROM PRODUCTS

No comments: