Ⅰ sql 自定义的函数三种,有达人能给我3个事例顺便讲解下区别么。
1)标量函数求三个数中的最大值
create function func_max(@x int,@y int,@z int)
returns in
as
begin
if @x<@y
if @y<@z set @x=@z;
else @x=@y;
else
if @y<@z
if@x<@z set @x=@z;
return @x;
end;
2)内联表值函数
create function func_find(@a int)
returns table
as
return(select * from test where a=@a)
3)多语句表值函数
create function func_find1(@sex char(2))
returns @func_find1 table(
sno int,
sname varchar(10),
sex char(2)
)
as
begin
insert into func_find1
select S.sno,S.sname,S.sex from S where S.sex=@sex
return
end
区别:
标量函数返回在returns自居中定义的类型的单个数据值,可以使用标量数据类型(包括bigint和sql_variant)。
内联表值函数没有函数主体,表是单个select语句的结果集。
多语句表值函数,在begin。。end块中定义的函数主体包含SQL语句,这些语句可生成行并将行插入将返回的表中。其中的语句不能有任何副作用。
Ⅱ VB 中 SQL 怎么使用 自定义函数
方法1:将这个函数加到SQL服务器上。
方法2:先取字段原始值,再用你的函数处理这个值。
Ⅲ 请教SQL自定义函数返回的例子
有记录的话会输出 学号,姓名,性别,课程名称,成绩,如果返回时空,在后台代码做判断吧
用的是mysql
delimiter
$$
create
function
name_of_function(kc
varchar(10))
//kc
课程名称
return
char(8)
begin
//现在比如你传的参数是会计
return
(
select
ST.学号,ST.姓名,ST.性别
,SC.课程名,SC.成绩
from
st
ST
left
join
(select
S.学号,S.成绩,C.课程名
from
s
S
left
join
c
C
on
S.课程号
=
C.课程号
and
C.课程名
=
'会计')
SC
on
st.学号
=
SC.学号
;
);
end$$
demiliter;
Ⅳ 数据库自定义函数,判断参数,生成不同的sql语句,返回数据
Return被定义为返回int.
当SType=21 @aaa存的是sql语句, 当然报错
当SType=22@aaa存的sql执行结果, Stock_id
Ⅳ sql怎么使用自定义函数来查询
用游标: declare @变量1 varchar(50),@变量2 varchar(50) -----创建游标 declare mycurs cursor for select 字段A,字段B from table1 open mycurs-----打开游标 fetch next from mycurs into @变量1,变量2 while @@fetch_Status=0--循环游标 begin ---循环处理 fetch next from mycurs into @变量1,变量2 end close mycurs Deallocate mycurs 我说的可能不好,你自己去可以看看游标的相关资料。
Ⅵ SQL自定义函数的创建(给定班级号,统计该班级男女生数量)
CREATE FUNCTION dbo.fn_stucount (@classno nvarchar(20))
RETURNS TABLE
AS
RETURN
(
select a.sex,count(*)数量 from student a,class b where a.sno=b.sno and b.classno=@classno
group by a.sex
);
Ⅶ 用SQL函数判断是否有效18位身份证号
判断是不是18位
if (len(@snid)<> 18) or (isnull(@snid,'')='')
goto ext
第七位、第八位不是19 或者 20
if not ((substring(@snid,7,2)='19') or (substring(@snid,7,2)='20'))
goto ext
判断前17位是否都是数字
select @i=1,@id_num='',@sn_sum=0,@sn_Last=''
while @i<18
begin
Ⅷ 用SQL语言,创建一个用户自定义函数,判断一个数是否能被5和7同时整除
CREATE
FUNCTION
F2(@数
INT)
RETURNS
VARCHAR(20)
AS
BEGIN
DECLARE
@结果
VARCHAR(20)
IF
@数
%
5=0
AND
@数
%
7=0
SET
@结果='可以被5和7
整除
'
ELSE
SET
@结果='不能被5和7整除'
RETURN
@结果
END
GO
select
dbo.F2(20),dbo.F2(35)
Ⅸ 利用sql 写一个正则表达式 判断 是否为手机号码 11 位 + 数字... 变量@TelNo
我的想法和下面位朋友差不多,但是可以直接用:
在数据表中加需要约束的那一列的一个约束就行了!表达式如下:
where
([列名]
like
'13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
注释:[0-9]代表是选任一一个0-9中的数字作为当前位的数字。希望能对你有所帮助和启发。
Ⅹ 用T-SQL自定义函数,创建标量值函数 判断一一个数是否为正数,是输出positive
很简单,但是以后最好能认真点, 首先你问问提至少要带个请字吧,大学老师留的课题你直接抄过来就完事了?
给你说最后一个
create function f_tableinfo
(
@tableName nvarchar(200)
)
returns @result table (
ColName nvarchar(200),
ColType nvarchar(200),
ColLength int,
ColIsNull bit
)
as
begin
insert into @result(ColName,ColType,ColLength,ColIsNull)
select
c.[name] as ColumnName,
t.[name] as ColumnType,
c.max_length as MaxLength,
c.is_nullable as [IsNull]
from sys.columns c
inner join sys.types t on c.system_type_id=t.system_type_id
where c.[object_id]=object_id(@tableName) and t.[name]<>'sysname'
order by c.column_id
return
end