创建一存储过程,其功能是用来查询学号为“20004071102”的学生是否存在,若存在,则显示其学号、姓名、性别、所选修的课程的课程名及成绩值,否则显示“查无此人”
代码如下:create proc pc(@学号 nvarchar(20))
as
if exists(select 1 from 学生表 where 学号=@学号)
    select * from 学生表 where 学号=@学号
else
    select '查无此人'请问 :select 1中"1"是什么意思?如何输入学号:20004071102

解决方案 »

  1.   

    select 1 from 学生表 where 学号=@学号
    -------------
    如果返回数据,表示有这个学号的学生。
    调用存储过程:exec pc N'20004071102'
      

  2.   

    1.select 1中"1"是什么意思?
    对满足条件的每一行 select一个1出来,因为据传 select 常数出来要比 *或者是具体的列,速度更快,Exists只会返回真或者假,所以子循环里返回什么都无所谓
    2.如何输入学号:20004071102
    exec pc('20004071102')