SQL Server – 在预期条件的上下文中指定的非布尔类型的表达式,靠近“RETURN”
发布时间:2020-05-24 16:58:49 所属栏目:MsSql 来源:互联网
导读:在SQL Server 2012中使用以下查询获取此错误. 在“RETURN”附近的预期条件的上下文中指定的非布尔类型的表达式. CREATE FUNCTION [dbo].[GetPMResources](@UserResourceNo nvarchar(250)) RETURNS @Resources TABLE ( ResourceNo nvarchar(250) COLLAT
|
在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 …)(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server-2008 – 在Management Studio和Profiler中查询执
- 数据库 – 嵌套间隔是嵌套集(修改的预订遍历)RDBMS性能降低
- 如何使用Visual Studio 2010在数据库中生成随机测试数据
- MSSql简单查询出数据表中所有重复数据的方法
- sql – 如何在不使用子查询的情况下仅选择具有最大序列的行
- sql – 从父表和子表中删除行
- sql – 与ActiveRecord和Rails 3的复杂JOIN
- 查询SQL Server Index上次Rebuild时间的方法
- sql-server – 如何将计算列添加到EF4模型?
- 作为t-sql select的一部分,如何执行简单的字符串映射?
