Используйте оператор CASE
для вычисления вывода следующим образом:
Select id,
Col1,
Col2,
Col3,
Input1,
Input2,
Input3,
Case when input1= 'Yes' then col1 end as output1,
Case when input2= 'Yes' then col2 end as output2,
Case when input3= 'Yes' then col3 end as output3
From your_table
- Обновление -
Попробуйте эту версию, где я использовал REGEXP_SUBSTR
и CASE
утверждение следующее:
SELECT
ID,
COL1,
COL2,
COL3,
INPUT1,
INPUT2,
INPUT3,
REGEXP_SUBSTR(OUTPUT, '[^,]', 1, 1) AS OUTPUT1,
REGEXP_SUBSTR(OUTPUT, '[^,]', 1, 2) AS OUTPUT2,
REGEXP_SUBSTR(OUTPUT, '[^,]', 1, 3) AS OUTPUT3
FROM
(
SELECT
ID,
COL1,
COL2,
COL3,
INPUT1,
INPUT2,
INPUT3,
CASE
WHEN INPUT1 = 'Yes' THEN COL1 || ','
END
|| CASE
WHEN INPUT2 = 'Yes' THEN COL2 || ','
END
|| CASE
WHEN INPUT3 = 'Yes' THEN COL3 || ','
END AS OUTPUT
FROM
YOUR_TABLE
);
Cheers !!