我创建了以下内容,可以使用where子句子句执行查询,但是当我使用以下查询时:
select *
from teacherSub
where teacher = "te123";
它会产生错误:
Msg 207,Level 16,State 1,Line 2
完整代码:
USE [SchoolRecord]
GO
/****** Object: View [dbo].[teacherSub] Script Date: 3/30/2015 8:32:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[teacherSub]
AS
SELECT sbt.teacherID AS teacher,
sub.Name AS SubjectName,
sub.GroupID AS groupName,
sub.Description AS subdescription
FROM Subjects sub,
SubjectTeacher sbt,
teacherInfo te
WHERE sbt.teacherID = te.TeacherID
AND sbt.SubjectID = sub.subjectID;
如何在上述视图中应用where
条款?
答案 0 :(得分:1)
使用Single quotes
代替double quotes
。 Double quotes
用于分隔identifiers
select * from teacherSub where teacher='te123'
答案 1 :(得分:1)
正如fireblade所解释的那样,你需要使用单引号用于文字字符串
此外,您还需要使用JOIN子句来连接表(良好实践)。
查看定义
ALTER VIEW [dbo].[teacherSub]
AS
SELECT sbt.teacherID AS teacher,
sub.Name AS SubjectName,
sub.GroupID AS groupName,
sub.Description AS subdescription
FROM Subjects sub
INNER JOIN SubjectTeacher sbt ON sbt.SubjectID = sub.subjectID
INNER JOIN teacherInfo te ON sbt.teacherID = te.TeacherID;
<强>查询强>
select * from teacherSub where teacher= 'te123';
答案 2 :(得分:0)
查询中的两项改进
不允许双引号
使用'like'关键字
select * from teacherSub where teacher LIKE 'te123'