SQL Server – 在预期条件的上下文中指定的非布尔类型的表达式,
发布时间:2020-12-12 06:25:15 所属栏目:MsSql教程 来源:网络整理
导读:在SQL Server 2012中使用以下查询获取此错误. 在“RETURN”附近的预期条件的上下文中指定的非布尔类型的表达式. CREATE FUNCTION [dbo].[GetPMResources](@UserResourceNo nvarchar(250)) RETURNS @Resources TABLE ( ResourceNo nvarchar(250) COLLATE Latin
在SQL Server 2012中使用以下查询获取此错误.
在“RETURN”附近的预期条件的上下文中指定的非布尔类型的表达式. CREATE FUNCTION [dbo].[GetPMResources](@UserResourceNo nvarchar(250)) RETURNS @Resources TABLE ( ResourceNo nvarchar(250) COLLATE Latin1_General_CS_AS not null,Name nvarchar(250) COLLATE Latin1_General_CS_AS not null ) AS BEGIN Declare @RoleID int,@UserDivision nvarchar(20) SELECT TOP(1) @RoleID = r.ReportingRole,@UserDivision = r.DivisionCode FROM Resource r WHERE r.ResourceNo = @UserResourceNo INSERT @Resources SELECT r.ResourceNo,Name = r.ResourceNo + ' ' + r.Name FROM Resource r WHERE r.ResourceNo IN ( SELECT m.ResourceNo FROM JobMember m JOIN Job j ON j.JobNo = m.JobNo WHERE j.ProjectManagerNo = @UserResourceNo OR j.AlternateProjectManagerNo = @UserResourceNo ) OR ( SELECT m.ResourceNo FROM JobMember m JOIN JobTask t ON t.JobTaskNo = m.JobTaskNo WHERE t.TaskManagerNo = @UserResourceNo OR t.AlternateTaskManagerNo = @UserResourceNo ) RETURN END 解决方法那是无效的语法.您正在使用标量运算符(OR)混合关系表达式.具体来说,你不能组合expr IN(选择…)或(选择…).您可能希望expr IN(选择…)或expr IN(选择…).使用union也可以:expr IN(select … UNION select …)(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |