0

以下のselectステートメントを使用した手順があります。

SELECT TYPE 
INTO v_type
FROM timeperiodtype
WHERE projectid = 15;

projectid =15 のレコードはありません。したがって、レコードは取得されません。15 のレコードがない場合、このクエリから何も取得せずに null を取得する方法はありますか?

私はすでにifnull、nullifを試しました。宣言ハンドラを使用できますが、カーソルで使用しています。はいの場合、このクエリに同じ宣言ハンドラーを使用することは可能ですか?いくつかの例で説明してください。

4

2 に答える 2

2

実行前に明示的に初期化v_typeするNULLSELECT INTO

SET v_type = NULL;
SELECT TYPE 
  INTO v_type
  FROM timeperiodtype
 WHERE projectid = 15;

またはSETステートメントを使用するだけ

SET v_type = 
(
  SELECT TYPE 
    FROM timeperiodtype
   WHERE projectid = 15;
);

これがSQLFiddleのデモです

于 2014-01-03T10:49:17.483 に答える