mysql排序字段兼容达梦

返回
Author Avatar
钢翼
2020-12-31
编程
148

在项目迁移数据库的时候,发现有下面的sql写法,为的是col1字段如果是null就排在前面。

select * from table1 order by col1 is null

明显这种写法在达梦是行不通的,所以需要换成下面的写法,以兼容两种数据库

select * from table1 order by (1-isnull(col1))

如果还要支持其他数据库怎么办?
建议改用自定义函数来处理,不过最好函数名改一下,因为isnull在sqlserver是系统函数,且需要两个参数,返回值也不是0和1。