3

特定のクエリのデータが見つからない場合に備えて、データを取得する必要がある状況があります。例えば

select id from abc where userid='XYZ'

この場合、userid='XYZ' のレコードがテーブル abc に存在する場合にのみ、ID を取得します。

以下のコードは、id が null として存在する場合にのみ 123 を返します。これは私が期待しているものではありません。

select isnull(id,123) from abc where userid='XYZ'

次のようなものが必要です:
abc に userid='XYZ' のデータがない場合、特定の値を出力する必要があります。
例えば

select isnull((select id from abc where userid='XYZ'),123)

上記のクエリに同様のショートカットはありますか?? 提案してください。前もって感謝します

4

3 に答える 3

0
select top 1 id
from
(
      select 1 as id, value from abc where userid='xyz'
      union 
      select 2, 123 
) v
order by ranking
于 2013-09-18T12:16:02.497 に答える
0

結果が 1 行のみを返す場合は、変数を使用できます。

DECLARE @Id INT;

SELECT @Id = id FROM abc WHERE userid='XYZ';

SET @Id = ISNULL(@Id, 123);

SELECT @Id AS Id;
于 2013-09-18T12:22:32.690 に答える