3

これは、フォームビュー内のselectステートメントの一部であり、更新プロセス中にnull値に達するまで正常に機能します。

 (SELECT TOP 1 F.tel_id FROM TELEPHONE as F where F.tel_type_id = 3 AND F.client_id = @id
 ORDER BY sort_no ) AS faxid

そのため、次のようにISNULL関数を使用しようとしましたが、エラーが発生します。どのようにそれを行うことができますか?

ISNULL((SELECT TOP 1 F.tel_id FROM TELEPHONE as F where F.tel_type_id = 3 AND F.client_id= @id ORDER BY sort_no ) AS faxid ,0) AS faxid
4

3 に答える 3

9

問題の原因を突き止めたと思います。そして、それが本当に1つである場合、2番目のコードスニペットをより適切にフォーマットした場合、他の誰かが私よりも早くそれを見つけたはずです。

それで、ここにあなたのコードスニペットが少し再フォーマットされて行きます:

ISNULL(
  (
    SELECT TOP 1 F.tel_id
    FROM TELEPHONE as F
    where F.tel_type_id = 3
      AND F.client_id= @id
    ORDER BY sort_no
  ) AS faxid,
  0
) AS faxid

強調表示された部分、AS fixedサブクエリの直後のビットは誤りです。そこにあるべきではありません。おそらくあなたはそれを見落としたのでしょう。

于 2011-11-29T13:32:49.287 に答える
2

ISNULLはF.tel_idの周りにある必要があります

試す

SELECT TOP 1 ISNULL(F.tel_id, 0) FROM TELEPHONE as F where F.tel_type_id = 3 AND F.client_id = @id ORDER BY sort_no
于 2011-11-29T11:09:41.600 に答える
0

COALESCE関数を使用して、null以外のものを返すことができます。したがって、クエリが実行されて値がある場合は返されます。それ以外の場合は、指定した値が返されます。

于 2011-11-29T11:10:56.107 に答える