我目前有在WHERE子句中的应用选择多行数据的查询:Oracle查询返回一个基于列的行值
SELECT
APP_NAME,
NAME,
ROLE
FROM APP_PERSON
WHERE APP_NAME='ABCD'
ORDER BY APP_NAME,NAME
这将返回:
ABCD Bob Executive Director
ABCD Kim Director
ABCD Sara Associate Director
ABCD Tim VP
我'这样做是为了返回一行,与最低的标题'角色'的人。顺序是:副总监,董事,执行董事,副总裁(这是唯一的选择)。
因此,对于上面的例子,我想返回的唯一行:
ABCD Sara Associate Director
如果不是一个副主任,我想导演。我如何创建一个能够做到这一点的查询。我假设某种DECODE,但不知道该去哪里。谢谢你的帮助!
的清洁方式(和NF)是创建一个角色表,添加一个“层次级”列,然后加入。 –
如果可能,我想不必对数据库进行任何更改。谢谢 – ad2387
只是一个猜测:你会后悔在2年内。 –