【发布时间】:2011-03-20 05:45:32
【问题描述】:
ORDER BY CASE
WHEN v_SORT_TYPE = 'ASC' THEN
CASE
WHEN v_SORT_ORDER = 'lname' THEN CAST(lname AS VARCHAR2(45)) || ',' || ROWNUM
WHEN v_SORT_ORDER = 'code' THEN CAST(code AS VARCHAR2(52)) || ',' || ROWNUM
END ASC
WHEN v_SORT_TYPE = 'DSC' THEN
CASE
WHEN v_SORT_ORDER = 'lname' THEN CAST(lname AS VARCHAR2(45)) || ',' || ROWNUM
WHEN v_SORT_ORDER = 'code' THEN CAST(code AS VARCHAR2(52)) || ',' || ROWNUM
END DESC
END
我正在尝试编写 v_SORT_TYPE 作为 ASC 或 DSC 传入的条件。我收到编译错误。
我认为这在我的 pl/sql SP 中很常见。
我哪里错了?
【问题讨论】:
-
什么是 ORA 错误代码?为什么要将 ROWNUM 连接到末尾?
-
ROWNUM 被连接起来以始终从 oracle 获取相同的行,因为我们正在进行分页。错误代码是
ORA-00905。 -
如果 ASC 和 DSC 的操作相同,为什么要检查它?
-
抱歉打错字了....我已经改正了