J'ai une requête très simple qui renvoie un ensemble de lignes, dans le tableau suivant:Comment sélectionner au moins 1 ligne d'un ensemble lorsque les conditions WHERE ne sont pas remplies?
Table1
N1 N2
1 A1
1 A2
2 B1
2 B2
2 B3
Je ne ai besoin d'une ligne (TOP (1)) de la table lorsque N1 = @X
. Dans tous les cas, je préférerais obtenir une valeur N2
spécifique, mais dans pas tous les cas, une valeur N2
serait existe pour chaque N1
Par exemple, la requête suivante ne reviendra ligne:
SELECT TOP(1) N1, N2 FROM Table WHERE N1 = 2 AND N2 = 'B4'
I Je cherche un moyen simple de retourner au moins 1 ligne même si la condition N2 = @N2
n'est pas remplie. Peu importe quelle ligne est retournée, tout sera OK si la valeur @N2
n'existe pas.
Jusqu'à présent, je l'ai fait ce qui suit, mais je voudrais si quelqu'un sait quelque chose de plus simple:
;with tmp AS (
SELECT TOP(1) *, 1 AS No FROM Table1 WHERE N1 = @N1 AND N2 = @N2
UNION
SELECT TOP(1) *, 2 AS No FROM Table1 WHERE N1 = @N1
)
SELECT TOP(1) * FROM tmp ORDER BY No
Toute aide sera appréciée
OMG !! = D Tu es un génie !!! @gordonlinoff – Ayorus