标签:tun pre use 语句 scala ram 数据 stun cal
接上 《T-SQL编程 —— 用户自定义函数(标量函数)》
http://www.cnblogs.com/viusuangio/p/6212072.html
内嵌表值函数可以用于实现参数化视图(查询),例如有一个查询其定义语句如下:
1 use Student 2 GO 3 --查询笔试成绩几个的同学 4 select s.stuno ,s.stuname,s.brithday,e.written,e.lab 5 from StuInfo s left outer join exam e 6 on s.stuno = e.stuno 7 where e.written >=60
若希望设计更加通用的程序,让用户能够指定查询内容,可将 where e.written >= 60 替换为 where e.written >=@para, @para用于传递参数,但是视图查询不支持在wherea语句中指定搜索条件参数,为解决这样的一个问题,可以使用内嵌值函数。
create function [owner_name.] function_name ([{@parameter_name [as] scalar_parameter_data_type [default]}[,n..]]) returns table [with encryption] [as] return [(select_stmt)]
其中各个选项的含义如下:
例如:在student数据库(假设已经存在)创建一个查询(一般是一个视图),如果在此查询的基础上定义一个内嵌表值函数。
1 /*创建视图查询,但不能带参数(如下面注释句)*/ 2 create view Veam as 3 select s.stuno,s.stuname,s.brithday,e.written,e.lab 4 from StuInfo s left outer join exam e 5 on s.stuno = e.stuno 6 --where writtrn >=60 7 8 9 10 /*改用内嵌表函数可以解决,传入参数,返回带参数的查询*/ 11 create function getExams(@written float) 12 returns table as 13 return( 14 select s.stuno,s.stuname,s.brithday,e.written,e.lab 15 from StuInfo s left outer join exam e 16 on s.stuno=e.stuno 17 where written >= @written 18 )
内嵌表值函数的调用:
内嵌表值函数只能通过 select 语句调用,内嵌表值函数调用的时候,可以仅仅只使用函数名。
例如,调用 getExams()函数,查询笔试成绩大于等于70的记录。
1 select * from dbo.getExams(70)
标签:tun pre use 语句 scala ram 数据 stun cal
原文地址:http://www.cnblogs.com/viusuangio/p/6212403.html