2012-08-07 48 views
0

我有一個查詢與兩個選擇條款聯合使用UNION.I只想選擇第一行。我如何使用聯盟?聯合選擇只有一行

Select Fault,OccurredOn From ATMStatus Where Ticket=189703 // This Will retrieve single record as the primary key is applied 
Union 
Select Fault,OccurredOn From ATMStatusHistory Where Resolved=0 AND Ticket=189703 Order By OccurredOn Desc 

回答

2
select top 1 * from 
(
       Select Fault,OccurredOn 
       From ATMStatus 
       Where Ticket=189703 
       Union 
       Select Fault,OccurredOn 
       From ATMStatusHistory 
       Where Resolved=0 AND Ticket=189703 
) x 
Order By OccurredOn Desc 
+0

無效列名OccuredOn – Shaggy 2012-08-07 12:21:22

+0

這是很奇怪的。請參見[簡單示例](http://www.sqlfiddle.com/#!3/0eece/1) – 2012-08-07 12:27:49

0

這將返回2行:

select 1 as id 
union 
select 2 as id 

這將返回1行:

select top 1 * from (
    select 1 as id 
    union 
    select 2 as id 
) as x 
order by id 
+0

返回哪一行(1或2)當然在此查詢中未定義。 – 2012-08-07 12:21:22

+0

你是對的 - 修復。我會編輯它以包含OP查詢,但是看起來我只是複製了'juergen d'的答案...... – 2012-08-07 12:24:41