2011-03-28 14 views
1

我有以下查詢:如何設置順序按使空行會爲了基於掀起了後來約束

SELECT frst.FirstActionPath, scnd.SecondActionPath, frst.FirstIterationId, scnd.SecondIterationId, 
     frst.FirstTestRunId, scnd.SecondTestRunId, frst.FirstOrderId, scnd.SecondOrderId 
FROM @FirstRunData frst 
     FULL JOIN @SecondRunData scnd 
      ON frst.FirstIterationId = scnd.SecondIterationId 
      AND frst.FirstActionPath = scnd.SecondActionPath 

ORDER BY scnd.SecondIterationId, scnd.SecondOrderId, frst.FirstIterationID, frst.FirstOrderId 

它給了我下面的結果:

Results

頂部行是@FirstRunData表中的行,但與@SecondRunData行中的行不匹配。

我該如何更改我的訂單,使額外的行位於FirstOrderId中的10000行之後?

回答

3

您可能可以在ORDER BY子句中利用COALESCE。例如,

ORDER BY COALESCE(scnd.SecondIterationId, frst.FirstIterationID, 9999), 
COALESCE(scnd.SecondOrderId, frst.FirstOrderId, 9999), 
frst.FirstIterationID, frst.FirstOrderId 

類似這樣我的地址是您的示例,但您需要根據您對所有條件的要求進行更改。

+0

太棒了!這工作完美。謝謝! – Vaccano 2011-03-28 05:50:55