Ada beberapa cara untuk membuatnya lebih sederhana dan lebih bersih, tetapi ini pada dasarnya menjelaskan tekniknya:
SELECT data_name
FROM data_table
WHERE data_table.type = v_t_id
UNION ALL
SELECT NULL AS data_name
FROM dual
WHERE NOT EXISTS (
SELECT data_name
FROM data_table
WHERE data_table.type = v_t_id
)
Saat bagian pertama dari gabungan kosong, bagian kedua akan berisi baris, saat bagian pertama tidak kosong, bagian kedua tidak akan berisi baris.
Jika kueri membutuhkan banyak waktu, gunakan yang ini:
SELECT * FROM (
SELECT data_name
FROM data_table
WHERE data_table.type = v_t_id
UNION ALL
SELECT NULL AS data_name
FROM dual
) WHERE data_name is not null or ROWNUM = 1