我寫了一個查詢,看起來像這樣:SQL - 我應該添加一個IF或CASE到這個WHERE子句嗎?
SELECT
xx.DATE
xx.TRANSACTION_ID
xx.ID
xx.CODE
FROM TABLE_X xx
WHERE
xx.DATE >= TO_DATE('2015-01-01', 'YYYY-MM-DD')
AND xx.ID IN
(SELECT
yy.id
FROM TABLE_Y yy
WHERE
yy.status = 'OPEN'
AND yy.type = 1
AND trunc(yy.date) = TO_DATE('{FREE_FORM}', 'YYYY-MM-DD')
)
ex.TABLE_X
DATE TRANSACTION_ID ID CODE
1/1/2015 1020 CAT RED
1/1/2015 1010 CAT GREEN
1/2/2015 2020 DOG RED
1/2/2015 2010 DOG GREEN
1/3/2015 3030 RABBIT BLUE
1/3/2015 3020 SPIDER RED
1/3/2015 3010 RABBIT GREEN
1/4/2015 4020 CAT RED
1/4/2015 4010 SNAKE GREEN
1/4/2015 4000 MONKEY ORANGE
1/5/2015 5020 HORSE RED
1/5/2015 5010 COW GREEN
ex.TABLE_Y
date id status type
1/1/2015 CAT OPEN 1
1/2/2015 DOG OPEN 1
1/3/2015 RABBIT OPEN 1
有了這些例子表我的電流輸出爲:
ex.output
DATE TRANSACTION_ID ID CODE
1/1/2015 1020 CAT RED
1/1/2015 1010 CAT GREEN
1/2/2015 2020 DOG RED
1/2/2015 2010 DOG GREEN
1/3/2015 3030 RABBIT BLUE
1/3/2015 3010 RABBIT GREEN
1/4/2015 4020 CAT RED
我想補充的東西,也許在WHERE子句,如:
if (ex.output.CODE = RED){
SELECT
xx.DATE
xx.TRANSACTION_ID
xx.ID
xx.CODE
FROM TABLE_X xx
WHERE xx.TRANSACTION_ID = ex.output.TRANSACTION_ID - 10
}
AND
if (ex.output.CODE = GREEN){
SELECT
xx.DATE
xx.TRANSACTION_ID
xx.ID
xx.CODE
FROM TABLE_X xx
WHERE xx.TRANSACTION_ID = ex.output.TRANSACTION_ID + 10
}
我的目標是與輸出到結束:
DATE TRANSACTION_ID ID CODE
1/1/2015 1020 CAT RED
1/1/2015 1010 CAT GREEN
1/2/2015 2020 DOG RED
1/2/2015 2010 DOG GREEN
1/3/2015 3030 RABBIT BLUE
1/3/2015 3020 SPIDER RED
1/3/2015 3010 RABBIT GREEN
1/4/2015 4020 CAT RED
1/4/2015 4010 SNAKE GREEN
這可能嗎?
你爲什麼不放在'那裏clause'的條件,然後'union'兩個結果? – Prisoner
請詳細說明條件 – Yared
答案是否定的。在WHERE子句中使用'AND' /'OR'。 – jarlh