好的,我必须最后输入空值.该查询应该在Oracle和MySQL下运行.
我已经想到了
ORDER BY
CASE WHEN some_table.ord IS NULL THEN 9999999999 ELSE some_table.ord END
Run Code Online (Sandbox Code Playgroud)
我应该使用值> max(some_table.ord)而不是9999999999.
我觉得确定这个值的子查询在这里太难看了.
如果这是C++,我可以使用像INT_MAX这样的宏来实现此目的.你能说出它的跨DBMS SQL双胞胎吗?
UPDATE
问题是我是否可以把东西...漂亮而不是9999999999,这样查询在Oracle和MySQL中都能正常工作,
为null标志使用额外的列:
order by
case when some_table.ord is null then 2 else 1 end ,
some_table.ord
Run Code Online (Sandbox Code Playgroud)
或者,如果您对此列可以采用的值有足够的了解,只需硬编码比那里的任何值更大的数字:
order by coalesce(some_table.ord, 9999999999)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |