2009年1月12日 星期一

巢狀select

如果要對一組已經select出來的結果做select動作
記得要把前一個select結果先加上別名(alias)
語法:

Select col_1,col_2,.. From
(Select col_1,col_2,... From table_1 [Where Expression])[As] table_temp

情況:已知table tb_coil_log有兩個欄位coil_date與coil_id
想要找出coil_date比coil_id='1234'的coil小的"前五筆(遞減排序前五筆)"中"最小coil_date"
分兩個步驟:

(1)先找出coil_id='1234'的coil_date
Declare @temp_coil_date As datetime;
Select @temp_coil_date=(Select coil_date From table_1 Where coil_id='1234');
(2)利用@temp_coil_date變數組合槽狀select
Select min(coil_date) From
(Select Top 5 coil_id,coil_date From table_1 Where coil_date<@temp_coil_date Order By coil_date Desc) temp_table


步驟(1)用到T-Sql宣告區域變數的語法
以及填入變數
也可以寫
Set @temp_coil_date=(.....);

沒有留言: