3
Iは、以下のテーブルからの行のセットを返す非常に単純なクエリを有する:WHERE条件が満たされていない場合、セットの少なくとも1行を選択するにはどうすればよいですか?
Table1
N1 N2
1 A1
1 A2
2 B1
2 B2
2 B3
は私は((1)TOP)テーブルN1 = @X
から1行を必要とします。次のクエリは、すべての行を返しませんたとえば、すべてのN1
のために存在するだろう、私はむしろ、特定のN2
値になるだろう、すべてのケースでは、しかし、必ずしもすべてのケースでN2
値:
SELECT TOP(1) N1, N2 FROM Table WHERE N1 = 2 AND N2 = 'B4'
私はN2 = @N2
の条件が満たされなくても、少なくとも1行を返す簡単な方法を探しています。 @N2
の値が存在しない場合、どの行が返されるかは関係ありません。
これまでのところ、私は次のことを行っている誰かが単純な何かを知っていれば、私は希望:
;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
すべてのヘルプは
OMG !! = Dあなたは天才です! @gordonlinoff – Ayorus