日期:2014-05-18  浏览次数:20365 次

求搜索功能的存储过程:
学生表:   SID,no(学号),name,sex,age,place(籍贯).
班级表:   ID,SID,gradeName,specialy(专业).
特   长:   ID,SID,good_at(特长)
就业单位:ID,SID,corpName(单位名称),dent(部门).

搜索条件:(班级)gradeName,(特长)good_at,(单位)corpName,(姓名)name,(年龄)age

返回列表是:(姓名)name,(性别)sex,(年龄)age,(专业)specialy,(单位)corpName




------解决方案--------------------
发错区了呀哥们...
------解决方案--------------------
学生表: SID,no(学号),name,sex,age,place(籍贯).
班级表: ID,SID,gradeName,specialy(专业).

====================
数据库设计不恰当。。。。。。

=========
学生表: SID, ID,no(学号),name,sex,age,place(籍贯).
班级表: ID,gradeName,specialy(专业).

这样才对吧 ?

------解决方案--------------------
欣赏楼上的,不过不是LZ要的。。。
------解决方案--------------------
没说清楚.是全部条件and,条件or还是%
------解决方案--------------------
似乎不难!
------解决方案--------------------


CREATE PROCEDURE sp_Scan
(
@scanTxt nvarchar(50)
)
AS
SELECT 学生表.name,学生表.sex,班级表.gradeName,班级表.specialy,就业单位.corpName
FROM 学生表,班级表,特长,就业单位
WHERE
(
班级表.gradeName LIKE '%@scanTxt% '
OR
特长.good_at LIKE '%@scanTxt% '
OR
就业单位.corpName LIKE '%@scanTxt% '
OR
学生表.name LIKE '%@scanTxt% '
OR
学生表.age LIKE '%@scanTxt% '
)
AND
就业单位.SID=特长.SID
AND
特长.SID=班级表.SID
AND
班级表.SID=学生表.SID

------解决方案--------------------
我SQL不好,你试试好不好用吧,没给表名的说
------解决方案--------------------
班级表.gradeName LIKE '% '+@scanTxt+ '% '
------解决方案--------------------
'% '+@scanTxt+ '% ' 和 '%@scanTxt% ' 的意思是一样的
------解决方案--------------------
太高级的我不会,我一般都是用存储过程分页的