如何通过条件以不同的顺序进行联合

时间:2014-04-10 11:50:07

标签: sql sql-order-by union-all

我有一个包含数据的表格 enter image description here

我想要来自表格的所有记录,但是具有EnquiryStatus = 1的记录和LastAttendendedDate的记录应该位于顶部,其余记录应该在这些记录之后。我试图在where条件下选择两次并试图将它们联合起来,但是那个联盟都不允许我以不同的方式订购。我可以在c#中将数据作为两个表重新执行并将它们合并为单个表。但我希望它在sql ..

编辑:

我想要像

这样的东西
Select * From EnquiryMaster A Where  A.BranchID=16 and EnquiryStatus=1  ORDER BY A.CreatedDate Desc     
UNION ALL
Select * From EnquiryMaster A Where  A.BranchID=16 and EnquiryStatus in(0,2,3) ORDER BY EnquiryStatus,A.CreatedDate Desc

2 个答案:

答案 0 :(得分:2)

SELECT * FROM TABLE_NAME WHERE ORDER BY CASE WHEN EnquiryStatus='1' THEN LastAttendendedDate END DESC 

您可以在sql中使用它。

答案 1 :(得分:1)

试试这个

select * from your_table
order by case when EnquiryStatus=1 then LastAttendendedDate end DESC