2013-03-18 3 views
0

Je dois sélectionner la première ligne d'une vue row_number uniquement si la deuxième ligne a une condition spécifique.Sélectionnez la première ligne de row_number() uniquement si la ligne numéro 2 a la condition x?

Maintenant, comment vérifier l'état des lignes?

Je pourrais obtenir ce point de vue:

row_num value 
1   1 
2   1 

Mais, j'ai besoin que la première ligne, si elle ressemble à ceci:

row_num value 
1   1 
2   2 

Donc, je suppose que ce que j'ai besoin est quelque chose comme:

«sélectionnez la première ligne lorsque la valeur de la deuxième ligne est 2 »

Comment faire cela?

+0

Vous avez besoin de curseur pour cela. – vittore

+1

Est-ce que c'est toutes les colonnes que la vue a? Aussi, que voulez-vous arriver quand la valeur de 'row_number' 2 * n'est pas * 2? – AakashM

+0

@ aakashm non, il y a plus de colonnes, mais ce sont les seules dont j'ai besoin. aussi, "valeur" ne peut être que 1 ou 0 (désolé, mal inséré dans le post d'ouverture), comme c'est une valeur de bit. @ vittore: soin d'expliquer? J'ai regardé quelques tutoriels, mais je ne comprends pas comment cela peut m'aider. – msa

Répondre

0

Votre question est un peu floue, mais que diriez-vous:

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 

Avec le MOD(v1.row_num, 2) != 0 vous obtenez uniquement les lignes où no_lig est étrange, parce que je compris votre question comme ceci:

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

Vous n'avez besoin que des lignes de type a et seulement si la valeur de la ligne b correspondante est 2.

Est-ce correct?

+0

hm, non je suppose. Je compte la première rangée en fonction de la deuxième rangée. plus tard, j'ai aussi besoin de compter la deuxième et la troisième rangée. la condition est la valeur de la deuxième rangée. J'ai déjà "filtré" par la première ligne, donc il aura toujours la valeur désirée. les lignes seront filtrées par date en fin de compte. – msa

+0

Ensuite, je vous suggère de fournir plus de données d'échantillon que 2 lignes et d'expliquer plus clairement ce que vous recherchez. En fait, je n'ai aucune idée ... – fancyPants

Questions connexes