在formview的select命令中的ISNULL函数

时间:2011-11-29 11:06:32

标签: sql-server-2008 formview isnull

这是我在formview中的select语句的一部分,它在更新过程中一直运行,直到它达到空值。

 (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

3 个答案:

答案 0 :(得分:7)

我想我找到了问题的原因。如果那真是那个那么我几乎可以肯定,如果你更好地格式化你的第二个代码片段,别人会比我更早发现它。

所以,这里是您的代码片段,稍微重新格式化:

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位,是错误的,它不应该存在。可能你只是忽略了它。

答案 1 :(得分:1)

你的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

答案 2 :(得分:0)

您可以使用COALESCE函数返回null以外的其他内容。因此,当您的查询执行并且具有值时,它将被返回,否则返回您指定的值。