我的Oracle技能生硬了不管怎么说我有以下Oracle Query支持并提供我需要的东西但是我需要比较最后两列。这是查询:
SELECT * FROM (select *
FROM (select TO_ENTITY_ID, END_DATE_DAY_ID, EASSIGNMENT_ID from ENTITY_eassignment WHERE TO_ENTITY_ID IN (11466248, 993051,993037))
PIVOT (MAX(END_DATE_DAY_ID) AS t FOR (EASSIGNMENT_ID) in (1, 1002)));
最终返回3行3列
TO_ENTITY_ID 1_T 1002_T
993037 29220 29220
11466248 29220 16126
993051 15255 16004
我需要做的是在这里添加第4列,如果它们是相同的值则比较最后两列,那么第4列应该是真/假。
TO_ENTITY_ID 1_T 1002_T SAME_VALUE
993037 29220 29220 TRUE
11466248 29220 16126 FALSE
993051 15255 16004 FALSE
非常感谢任何帮助。
答案 0 :(得分:2)
(CASE WHEN "1_T" = "1002_T"
THEN 'TRUE'
ELSE 'FALSE'
END)
外部查询中的应该有效。那是
SELECT to_entity_id,
"1_T",
"1002_T",
(CASE WHEN "1_T" = "1002_T"
THEN 'TRUE'
ELSE 'FALSE'
END)
FROM( <<your existing query>> )
如果您想过滤
SELECT to_entity_id,
"1_T",
"1002_T",
(CASE WHEN "1_T" = "1002_T"
THEN 'TRUE'
ELSE 'FALSE'
END)
FROM( <<your existing query>> )
WHERE "1_T" = "1002_T" -- (or !=)