Don't waste time; here's the sample code with the Oracle database.
SELECT * FROM SampleTable WHERE sample_field in (7,3,4,6) ORDER BY INSTR(',7,3,4,6,', ',' || sample_field || ',');
In MySQL, we can
SELECT IF(A IS NULL, "something", A) FROM some_table;
If you want to do a similar thing in PL/SQL, you need to
SELECT (CASE WHEN A IS NULL THEN "something" ELSE A END) FROM some_table;
If you want to get the first non-null value from several fields, you have a better choice than using the CASE
keyword.
SELECT COALESCE(A, B) FROM some_table
see more information about the Oracle COALESCE function
Today I first learnt the concept of CTE (Common Table Expression) from my colleague Rod. Basically, CTE can be used to improve the readability of your long and complex SQL statement.
for example, without CTE, you might write the following SQL:
CREATE OR REPLACE VIEW dfx.test_vw123 AS
SELECT
a.FIELD_A,
a.FIELD_B,
b.FIELD_C
b.FIELD_D
FROM (
SELECT
MAX(FIELD_A) AS FIELD_A,
COUNT(*) AS FIELD_B
FROM TABLE_A ta
WHERE ta.FIELD_E = 'General'
GROUP BY ta.FIELD_F
) a
LEFT JOIN TABLE_A b
ON a.FIELD_A = b.FIELD_A
with CTE, you could write the following one with better readability.
CREATE OR REPLACE VIEW dfx.test_vw123 AS
WITH TABLE_A_STATS AS (
SELECT
MAX(FIELD_A) AS FIELD_A,
COUNT(*) AS FIELD_B
FROM TABLE_A ta
WHERE ta.FIELD_E = 'General'
GROUP BY ta.FIELD_F
)
SELECT
a.FIELD_A,
a.FIELD_B,
b.FIELD_C
b.FIELD_D
FROM TABLE_A_STATS a
LEFT JOIN TABLE_A b
ON a.FIELD_A = b.FIELD_A;
For further information about CTE, click Reference
I also found another article about CTE in Chinese.