这是我在FormView中选择语句的一部分,该声明在更新过程中效果很好,直到它在更新过程中达到零值。

 (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
有帮助吗?

解决方案

我想我发现了问题的原因。而且,如果那真的是一个,那么我几乎可以肯定,如果您对第二个代码段的格式化更加好,那么其他人会比我更早发现它。

因此,您的代码片段进行了略微重新格式化:

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
  ) 作为Faxid,
  0
) AS faxid

突出显示的部分, AS fixed 子查询后立即有错误,只是不应该在那里。可能您只是忽略了它。

其他提示

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

您可以使用 合并 功能返回除null以外的东西。因此,当您的查询执行并具有一个值时,它将返回其他返回您指定的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top