仅当行号2的条件为x时,才选择row_number()的第一行?

时间:2013-03-18 15:07:46

标签: sql-server

仅当第二行具有特定条件时,我才需要选择row_number视图的第一行。

现在,我该如何检查行的状况?

我可能会得到这样的观点:

row_num   value
1          1
2          1

但是,我只需要第一行,如果它看起来像这样:

row_num   value
1          1
2          2

所以,我想我需要的是:

“当第二行中的值为2”时选择第一行

怎么做?

1 个答案:

答案 0 :(得分: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时才需要。

这是对的吗?