sql定義函數
❶ T-sql 自定義函數
你這個函數是替換/.後面的所有字元為空,那麼SQL語句為
Update [table] set title=Left([Key],Charindex('/.',[Key])-1)
如果你要把這個函數轉換成SQL的自定義函數,那麼函數為
Create Function [dbo].[MyReplace](@Reg Varchar(1000),@Source Varchar(4000),@Str Varchar(1000))
returns sql_variant
As
Begin
Declare @Err Int
Declare @obj Int
Declare @Rst sql_variant
EXEC @Err=Sp_OACreate 'VBScript.RegExp',@obj OUTPUT
If @Err<>0 GoTo LB
EXEC @Err=Sp_OASetProperty @obj,'Pattern',@Reg
If @Err<>0 GoTo LB
EXEC @Err=Sp_OASetProperty @obj,'Global','True'
If @Err<>0 GoTo LB
EXEC @Err=Sp_OASetProperty @obj,'IgnoreCase','False'
If @Err<>0 GoTo LB
EXEC @Err=Sp_OAMethod @obj,'Replace',@Rst OUTPUT,@source,@Str
If @Err<>0 GoTo LB
EXEC @Err=Sp_OADestroy @obj
If @Err<>0 GoTo LB
Return @Rst
LB:
EXEC Sp_OADestroy @obj
RETURN Null
End
然後調用的SQL語句
Update [table] set title=dbo.MyReplace('/.*',[key],'')
❷ SQL語句定義一個函數
--a為學生表,b為成績表,c為課程表
create function test(@id varchar(10))
returns table
return
select a.id,a.name,c.kcname,c.kcnumber,b.scores from a
left join b on b.id=a.id
left join c on c.id=a.id
where a.id=@id
這樣應該對的,希望可以幫到你。
❸ SQL有哪幾種用戶自定義函數,區別是什麼
用戶定義的函數有標量函數和表值函數兩種,其中表值函數又分為內聯表值函數和多語句表值函數。
❹ SQL_用戶定義函數
你需要返回一個TABLE
CREATEFUNCTIONSP_CALC
(@deptVARCHAR(50)---部門編號
)
RETURNS@tTABLE(salAvgfloat,salSumfloat)
AS
BEGIN
計算過程
INSERT@t(salAvg,salSum)VALUES(你計算的值)
RETURN
END
GO
❺ SQL創建用戶自定義函數
樓主我只寫了其中一個..基本方法都如此,希望對您有幫助,代碼如下
ALTER FUNCTION [dbo].[sum]
(
@class varchar(100), --所選課程
@username varchar(20) --學生姓名
)
RETURNS int
AS
BEGIN
DECLARE @reun int
SELECT SUN(@class) FROM YOURTABLE WHERE USERNAME=@username
RETURN @reun
END
❻ 寫一個Sql自定義函數
declare @flag int,@no varchar(20),@return int
--先為變數賦值
--set @flag=0...
select @return = search1(@flag,@no)
我沒明白,是要寫函數的代碼還是寫調用的代碼?調用方法上面已寫。
❼ Microsoft SQL Server如何創建 自定義函數
Create Function RmGetPY(@chn nchar(1))
returns char(1)
as
begin
declare @n int
declare @c char(1)
set @n = 63
select @n = @n +1,@c = case chn when @chn then char(@n) else @c end from(
select top 27 * from (
select chn =
'吖' union all select
'八' union all select
'嚓' union all select
'咑' union all select
'妸' union all select
'發' union all select
'旮' union all select
'鉿' union all select
'丌' union all select
'丌' union all select
'咔' union all select
'垃' union all select
'嘸' union all select
'拏' union all select
'噢' union all select
'妑' union all select
'七' union all select
'呥' union all select
'仨' union all select
'他' union all select
'屲' union all select
'屲' union all select
'屲' union all select
'夕' union all select
'丫' union all select
'帀' union all select @chn) as a
order by chn COLLATE Chinese_PRC_CI_AS
) as b
return(@c)
end
go
Create Function GetAllPY(@chn nvarchar(100))
returns varchar(30)
as
begin
declare @i int,@j int,@result varchar(100)
set @result=''
set @i=len(@chn)
set @j=1
while @j<=@i
begin
set @result = @result + dbo.RmGetPY(substring(@chn,@j,1))
set @j=@j+1
end
return @result
end
看看這兩個,典型的取漢字拼音碼的函數
❽ SQL中創建一個用戶自定義函數
CREATE
FUNCTION
DBO.tFProctsHS
(
@name
VARCHAR(10))
RETURNS
INT
--這個根據價格的類型自己修改
AS
begin
DECLARE
@jiage
INT;
select
@jiage=
jiage
from
商品表
where
name=
@name
RETURN
(@jiage)
end
--ceshi
select
DBO.tFProctsHS
('記事本')
❾ sql 自定義函數
Create function dbo.YourFunName (@DateSrc varchar(20))
returns varchar(8)
as
begin
Declare @dateTemp dateTime
set @dateTemp = convert (datetime,@DateSrc, 121)
if @dateTemp is Null
return null
declare @monthTemp int
declare @DateDes varchar(8)
set @monthTemp = Month(@dateTemp)
if(@monthTemp%3 = 0)
set @DateDes = convert(varchar(1),@monthTemp/3)+'Q'+Convert(varchar,Year(@dateTemp ))
else
set @DateDes = convert(varchar(1),@monthTemp/3+1)+'Q'+Convert(varchar,Year(@dateTemp ))
return @DateDes
end
❿ 關於SQL自定義函數的用法
ALTER是修改的意思
函數的作用是返回 returns @t_DBOM table(MD001 VARCHAR(20),MD003 VARCHAR(20))
AS BEGIN下面是對函數的定義.