Sql server 使用CASE语句创建视图
我使用的是WideWorldImporters数据库,其中包含一个二进制值表,显示某人是否是员工、是否可以登录以及是否是销售人员。我试图创建一个视图来显示更友好的数据版本 以下是应用程序中的相关字段。人员表: 这是我尝试的代码:Sql server 使用CASE语句创建视图,sql-server,tsql,Sql Server,Tsql,我使用的是WideWorldImporters数据库,其中包含一个二进制值表,显示某人是否是员工、是否可以登录以及是否是销售人员。我试图创建一个视图来显示更友好的数据版本 以下是应用程序中的相关字段。人员表: 这是我尝试的代码: CREATE VIEW Application.PeopleEmployeeStatus1 AS SELECT PersonId, FullName, IsPermittedToLogon, IsEmployee, IsSa
CREATE VIEW Application.PeopleEmployeeStatus1
AS
SELECT
PersonId, FullName,
IsPermittedToLogon, IsEmployee, IsSalesPerson,
CASE
WHEN IsPermittedToLogon = 1
THEN 'Can Logon'
ELSE 'Can''t Logon'
END AS LogonRights,
CASE
WHEN IsEmployee = 1 AND IsSalesPerson = 1
THEN 'SalesPerson'
WHEN IsEmployee = 1
THEN 'Regular'
ELSE 'Not Employee'
END AS EmployeeType
FROM
Application.People;
我收到了错误消息:
Msg 156,级别15,状态1,程序PeopleEmployeeStatus1,第14行[批处理起始行0]关键字“SELECT”附近的语法不正确
可能涉及多个陈述:
-- here goes batch separator
GO
CREATE VIEW Application.PeopleEmployeeStatus1
AS
SELECT PersonId, FullName,
IsPermittedToLogon, IsEmployee, IsSalesPerson,
CASE WHEN IsPermittedToLogon = 1 THEN 'Can Logon'
ELSE 'Can''t Logon' END AS LogonRights,
CASE WHEN IsEmployee = 1 and IsSalesPerson = 1
THEN 'SalesPerson'
WHEN IsEmployee = 1
THEN 'Regular'
ELSE 'Not Employee' END AS EmployeeType
FROM Application.People;
GO
可能涉及多个陈述:
-- here goes batch separator
GO
CREATE VIEW Application.PeopleEmployeeStatus1
AS
SELECT PersonId, FullName,
IsPermittedToLogon, IsEmployee, IsSalesPerson,
CASE WHEN IsPermittedToLogon = 1 THEN 'Can Logon'
ELSE 'Can''t Logon' END AS LogonRights,
CASE WHEN IsEmployee = 1 and IsSalesPerson = 1
THEN 'SalesPerson'
WHEN IsEmployee = 1
THEN 'Regular'
ELSE 'Not Employee' END AS EmployeeType
FROM Application.People;
GO
你的选择在我看来很好,一定是出了什么事。该视图名称有效吗?当我创建视图,然后从Application.PeopleEmployeeStatus1执行query
SELECT*时,该视图有效并起作用代码>。我猜你还有其他问题没有告诉我们。你的选择在我看来很好,一定是出了什么事。该视图名称有效吗?当我创建视图,然后从Application.PeopleEmployeeStatus1执行querySELECT*时,该视图有效并起作用代码>。我猜你还有其他问题没有告诉我们。