只有当第二行有特定条件时,我才需要选择row_number视图的第一行。仅当行号2的条件为x时,才选择row_number()的第一行?
现在,我该如何检查行的状态?
我可能会得到这样的观点:
row_num value
1 1
2 1
但是,我只需要在第一行,如果它看起来像这样:
row_num value
1 1
2 2
所以,我想我需要的是这样的:
“选择第一行,当第二行中的值为2”
如何做到这一点?
只有当第二行有特定条件时,我才需要选择row_number视图的第一行。仅当行号2的条件为x时,才选择row_number()的第一行?
现在,我该如何检查行的状态?
我可能会得到这样的观点:
row_num value
1 1
2 1
但是,我只需要在第一行,如果它看起来像这样:
row_num value
1 1
2 2
所以,我想我需要的是这样的:
“选择第一行,当第二行中的值为2”
如何做到这一点?
你的问题是有点不清楚,但是这个怎么样:
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时才行。
是对不对?
嗯,不,我猜。我正在计算第一行,这取决于第二行。后来我还需要计算第二和第三排。条件是第二行的值。我已经“过滤”了第一行,所以它会始终具有所需的值。这些行最终会按日期过滤。 – msa 2013-03-18 15:56:54
然后我建议你提供比2行更多的示例数据,并且更清楚地解释你所追求的内容。其实我不知道... – fancyPants 2013-03-18 15:59:59
你需要光标为此。 – vittore 2013-03-18 15:08:42
视图中的所有列是什么?另外,当'row_number' 2 *的值不是* 2时,你想要发生什么? – AakashM 2013-03-18 15:10:12
@ aakashm不,有更多的colums,但这些基本上是我需要的唯一的。另外,“价值”只能是1或0(对不起,在开头文章中输入错误),因为它的价值。 @ vittore:谨慎解释?我看了一些教程,但我不明白这可以帮助我。 – msa 2013-03-18 15:27:42