1

我有一个标量函数,如果用户存在则返回电子邮件地址,如果用户不存在则返回 null。

我需要从存储过程中调用此函数,如果用户存在,存储过程需要返回电子邮件地址,如果用户不存在,它应该返回“用户不存在”。

我面临的问题是如何在函数的情况下检查 null ?还是我看错了?下面给出了我正在寻找的代码片段。IF EXISTS 在这种情况下不起作用。任何帮助,将不胜感激。谢谢。

Alter procedure [dbo].[xalumniGetPrimaryEmailAddress] 
@login varchar(50) 
AS

BEGIN
IF EXISTS (select dbo.ZAlumniGetPrimaryAddress(@login))

    BEGIN
        PRINT @login+' EXISTS'
    END
ELSE
    BEGIN
        PRINT @login+' DOES NOT EXIST'
    END
END
GO
4

2 回答 2

2
 Alter procedure [dbo].[xalumniGetPrimaryEmailAddress] 
      @login varchar(50) 
      AS

 BEGIN
 IF dbo.ZAlumniGetPrimaryAddress(@login) is not null

     BEGIN
         PRINT @login+' EXISTS'
     END
      ELSE
     BEGIN
         PRINT @login+' DOES NOT EXIST'
     END
 END
 GO
于 2013-04-08T15:24:29.870 回答
1

尝试:

IsNull(dbo.ZAlumniGetPrimaryAddress(@login), 'User does not exist')

或者:

Coalesce(dbo.ZAlumniGetPrimaryAddress(@login), 'User does not exist')

这有帮助吗?

于 2013-04-08T15:23:38.000 回答