有没有办法动态选择哪个表的ORDER BY先行?

时间:2017-11-20 18:29:32

标签: sql db2 sql-order-by

我在IBM Power上的DB2上使用SQL。我有一个声明,它从多个CTE中抽取相同的数据,然后通过几个字段输入。但问题是,当两者都有空值时,我怎么能说'如果这是空的,那么这个其他字段的顺序是相同的'?我觉得这是不可能的,但我想我会问。我试图在每一行中添加多个结果,这样我就可以节省性能,在一个语句中获取静态信息。两张图片都是相同的结果。

对不起,我必须阻止一些数据,但我希望它有所帮助。

https://i.imgur.com/PHVqQyL.png

1 个答案:

答案 0 :(得分:1)

select *
from mytable
order by coalesce(thisField, otherfield);

测试

SELECT * FROM CMW1
ORDER BY FLD1     

结果

FLD1        FLD2 
ABC         ABC  
-           TEST 
-           ABC  

使用合并

SELECT * FROM CMW1           
ORDER BY coalesce(FLD1,fld2) 

结果

FLD1        FLD2 
ABC         ABC  
-           ABC  
-           TEST