2013-03-18 55 views
0

只有當第二行有特定條件時,我才需要選擇row_number視圖的第一行。僅當行號2的條件爲x時,才選擇row_number()的第一行?

現在,我該如何檢查行的狀態?

我可能會得到這樣的觀點:

row_num value 
1   1 
2   1 

但是,我只需要在第一行,如果它看起來像這樣:

row_num value 
1   1 
2   2 

所以,我想我需要的是這樣的:

「選擇第一行,當第二行中的值爲2」

如何做到這一點?

+0

你需要光標爲此。 – vittore 2013-03-18 15:08:42

+1

視圖中的所有列是什麼?另外,當'row_number' 2 *的值不是* 2時,你想要發生什麼? – AakashM 2013-03-18 15:10:12

+0

@ aakashm不,有更多的colums,但這些基本上是我需要的唯一的。另外,「價值」只能是1或0(對不起,在開頭文章中輸入錯誤),因爲它的價值。 @ vittore:謹慎解釋?我看了一些教程,但我不明白這可以幫助我。 – msa 2013-03-18 15:27:42

回答

0

你的問題是有點不清楚,但是這個怎麼樣:

SELECT 
* 
FROM 
yourView v1 
LEFT JOIN yourView v2 ON v1.row_num = v2.row_num -1 
WHERE 
MOD(v1.row_num, 2) != 0 
AND v2.value = 2 

隨着MOD(v1.row_num, 2) != 0你只有在ROW_NUM是奇數行,因爲我明白你的問題是這樣的:

table 
----- 
type | row_num | value 
a  1   x 
b  2   y 
a  3   z 
b  4   xx 

只需要類型a的行,並且僅當相應的b行的值爲2時才行。

是對不對?

+0

嗯,不,我猜。我正在計算第一行,這取決於第二行。後來我還需要計算第二和第三排。條件是第二行的值。我已經「過濾」了第一行,所以它會始終具有所需的值。這些行最終會按日期過濾。 – msa 2013-03-18 15:56:54

+0

然後我建議你提供比2行更多的示例數據,並且更清楚地解釋你所追求的內容。其實我不知道... – fancyPants 2013-03-18 15:59:59

相關問題