虽然这种技术对标准列很有效,但我遇到了一些我不明白的事情。我正在重写查询中的结果以用于报告目的,并且需要按别名列“PARENT”排序,如下所示:
select fun.MODULE_ID
, fun.FUNCTION_ID
, COALESCE(fun.parent_function, fun2.function_id) as PARENT
, fun.DESCRIPTION
, fun.FUNCTION_PURPOSE
from MODULE_FUNCTION fun
LEFT JOIN MODULE_FUNCTION fun2
ON fun.function_id = fun2.function_id
AND fun2.function_id IN (SELECT parent_function FROM MODULE_FUNCTION)
ORDER BY MODULE_ID
, PARENT
, FUNCTION_ID
这很好用,但我的列 'PARENT_FUNCTION' 及其别名 'PARENT' 包含空值。我希望这些在底部。所以当我这样做时:
ORDER BY MODULE_ID
, case when PARENT is null then 1 else 0 end, PARENT
, FUNCTION_ID
我得到“无效的列名'PARENT'。 ”
有任何想法吗?(对 SQL 来说还是很新的东西!)