create table mainemployees (emp_id int, emp_type int)
create table externalemp (emp_id int, name nvarchar(20))
create table internalemp (emp_id int, name nvarchar(20))
create table specialemp (emp_id int, name nvarchar(20))
insert into mainemployees (emp_id, emp_type) values (1, 0), (2, 1), (3, 2)
insert into externalemp (emp_id, name) values (1, 'external')
insert into internalemp (emp_id, name) values (2, 'internal')
insert into specialemp (emp_id, name) values (3, 'special')
而對於查詢使用CASE選擇右列
SELECT
CASE me.emp_type WHEN 0 THEN ee.name WHEN 1 THEN ie.name WHEN 2 THEN se.name END
FROM mainemployees as me
LEFT JOIN externalemp as ee ON me.emp_id = ee.emp_id
LEFT JOIN internalemp as ie ON me.emp_id = ie.emp_id
LEFT JOIN specialemp as se ON me.emp_id = se.emp_id
是什麼在'informix'的替代'coalesce'因爲我得到的語法錯誤,當我嘗試這種方法。 –
Informix似乎使用'nvl'作爲'coalesce'替代 – Andomar
,但是當我使用'NVL'時,它需要兩個參數而不是三個參數 –