注册 登录
编程论坛 SQL Server论坛

一个SQL语句查询,不知道哪出问题了啊

一个人的方向 发布于 2010-11-27 20:57, 1174 次点击
创建数据库University,学生表Students,各属性为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。要求Sno和Sname不能为空值,且取值唯一,Sno为键码。

  课程表Courses,各属性为Cno-课程号, Cname-课程名, Pre_Cno-先修课程号, Credits-学分,要求Cno和Cname不能为空值,Cno取值唯一,且为键码。

成绩表Reports。各属性名为Sno-学号,Cno-课程号和Grade-考试成绩,要求Sno和Cno不能为空,且取值唯一,Sno+ Cno为键码。

Courses表中Cname有一项数据为“DB_设计”,那个题目的要求是查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况

我使用是语句是

SELECT *
FROM Courses
WHERE Cname  LIKE'DB\_%设__'ESCAPE'\';


执行的时候没有报错,但是查不出来那一项,各位帮忙看看啊 ,那个地方出错了啊~~
12 回复
#2
aei1352010-11-27 21:24
应该是这样吧,不知道你的那个什么意思了
SELECT *
FROM Courses
WHERE Cname  LIKE'DB_%设_'
#3
cnfarer2010-11-27 21:26
WHERE Cname  LIKE 'DB\_%设_' ESCAPE '\';
#4
一个人的方向2010-11-27 21:38
回复 2楼 aei135
设后面的两个_代表的是一个字啊,字符占一位,汉字不是占两位吗?
#5
一个人的方向2010-11-27 21:47
回复 3楼 cnfarer
设  后面的两个_代表的是一个字啊,字符占一位,汉字不是占两位吗?
#6
q838089522010-11-27 22:40
USE University
GO

SELECT Cno, Credits
FROM Courses
WHERE Cname LIKE 'DB\_设计%'ESCAPE'\'
GO


这样就好了,呵呵,我是阿龙.....
#7
tony_song2010-11-28 10:36
select * from course where cname like '%DB_%设_%'   
#8
一个人的方向2010-11-28 14:27
回复 6楼 q83808952
的确可以啊
#9
一个人的方向2010-11-28 14:29
回复 8楼 一个人的方向
谢谢啊
#10
cnfarer2010-11-28 18:28
回复 5楼 一个人的方向
这是字符编码问题。一个汉字也是一个字符啊!
#11
aei1352010-11-29 09:39
3楼的是对的
#12
dengjinjie2010-11-29 09:55
请教各位,为什么这个语句后面要加"ESCAPE"呢,是什么意思呢?
#13
一个人的方向2010-11-29 12:54
回复 12楼 dengjinjie
ESCAPE'\'表示“\”为转码字符,这样匹配串中紧跟在“\”后面的字符“——”不再具有通配符的含义,转义为普通的“_”字符
1