當前位置:首頁 » 編程語言 » sql編寫函數

sql編寫函數

發布時間: 2022-09-02 19:36:23

❶ 在plsql中,編寫一個函數,怎麼編寫

直接sql語句:

select wm_concat(decode(e.empno,7369,d.dname,null)),wm_concat(decode(e.empno,7369,e.ename,null)) from emp e, dept d

where e.empno in ((select e1.mgr from emp e1 where e1.empno = 7369), 7369)

and e.deptno = d.deptno

/



function :

createorreplacefunctionprint_(p_empnoinnumber)returnvarchar2is
l_resultvarchar2(100);
begin
selectwm_concat(decode(e.empno,p_empno,d.dname,null))||','||wm_concat(decode(e.empno,p_empno,e.ename,null))
intol_result
fromempe,deptd
wheree.empnoin
((selecte1.mgrfromempe1wheree1.empno=p_empno),p_empno)
ande.deptno=d.deptno;
return(l_result);
end;


測試:

SQL>selectprint_(7369)fromal;
PRINT_(7369)
--------------------------------------------------------------------------------
RESEARCH,SMITH

SQL>

❷ 如何創建sql函數

如何創建sql函數?
CREATE FUNCTION [dbo].[函數名](參數) RETURNS NVARCHAR(15) AS BEGIN END

❸ 使用SQL編寫一個函數

CREATE PROC Get_Sumdays
@YYMMDD1 datetime,@YYMMDD2 datetime
AS
BEGIN
Declare @Days int
select @Days=datediff(week,@YYMMDD1,@YYMMDD2) +(case when datepart(weekday,@YYMMDD1)>1 then 0 else 1 end)-(case when datepart(weekday,@YYMMDD2)>=1 then 0 else 1 end)
PRINT @Days
END

執行存儲過程:Get_Sumdays '2009-08-01','2009-08-30'
@YYMMDD1 是開始日期 @YYMMDD2是結束日期

❹ sql中如何寫函數

/*
獲取兩個數值的大小
0:小於;1:大於;2:等於
*/
CREATE function GetMax(@qty1 varchar(50),@qty2 varchar(50))
returns int
begin
declare @Num int
if (convert(decimal(18,5),@qty1)-convert(decimal(18,5),@qty2) >0)
begin
set @Num=1
end
else if (convert(decimal(18,5),@qty1)-convert(decimal(18,5),@qty2) <0)
begin
set @Num=0
end
else
begin
set @Num=2
end

return @Num
end

❺ sql編寫函數

create function count_book(@id_card int)
returns int
begin
declare @c int
select count(1) into @c from book_borrow where id_card = @id_card
return @c
end

欄位名和表名根據你實際情況 修改一下。
調用就是
select dbo.count_book(11);

❻ 自己編寫sql函數

create function [dbo].[Get_StrArrayStrOfIndex]
(
@str varchar(1024), --要分割的字元串
@split varchar(10), --分隔符號
@index int --取第幾個元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int

set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)

set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--這兒存在兩種情況:1、字元串不存在分隔符號 2、字元串中存在分隔符號,跳出while循環後,@location為0,那默認為字元串後邊有一個分隔符號。

return substring(@str,@start,@location-@start)
end

使用舉例:
select id,code=dbo.Get_StrArrayStrOfIndex(code,'.',4) from code_table

❼ sql函數的編寫格式是怎樣的

函數的格式如下:
如下函數名為inttochar(),使用時這樣:select dbo.inttochar(1234,10)

CREATE FUNCTION [dbo].[inttochar] (@int int=0, @length int=1)
RETURNS varchar(250) AS
--將@int轉換成長度為@length的字元串,長度不足時加前導0
BEGIN
declare @tmp varchar(250)
select @tmp=cast(@int as varchar(250))
while len(@tmp)<@length begin
select @tmp='0'+@tmp
end
return @tmp
END

❽ SQL如何編制一個函數

create function funCharToDistinct(@char varchar(max),@splitChar varchar(1000))
returns varchar(max)
as
begin
declare @returnChar varchar(max) select @returnChar=''
while(charindex(@splitChar,@char)>0)
begin
select @returnChar=@returnChar+ left(@char,charindex(@splitChar,@char))
select @char=replace(@char,left(@char,charindex(@splitChar,@char)),'')
end
return (@returnChar)
end
go
--TEST:
declare @char varchar(max) select @char='a;a;b;c;d;b;c;'
select dbo.funCharToDistinct(@char,';')
輸出結果:

-----------
a;b;c;d;
(1 行受影響)

❾ sql server資料庫編寫自定義函數

如果只是單純的把兩個欄位拼接起來沒必要寫自定義函數,查詢語句就可以實現

select FirstName,LastName,FirstName+LastName FullName from EMPLOYEE
FullName是合並後的欄位

❿ sql server 函數編寫

函數如下:

createfunctiondbo.test(@snvarchar(max))
returnsnvarchar(max)
as
begin
declare@idxint,@spiltCharnvarchar(10),@vnvarchar(max)
declare@tbtable(txtnvarchar(max),order_idxintidentity(1,1))
select@spiltChar=';',@idx=1

while@idx>0
begin
set@idx=charindex(@spiltChar,@s)
if@idx>0
begin
set@v=left(@s,@idx-1)
set@s=right(@s,len(@s)-@idx)

insertinto@tb(txt)
select@v
where@v!=''andnotexists
([email protected]=@v)
end
else
begin
insertinto@tb(txt)
select@s
where@s!=''andnotexists
([email protected]=@s)
end
end
set@v=''
select@v=@v+s.txt+';'
from@tbs
orderbys.txt
return@v
end
go

調用:

selectdbo.test('a;a;b;c;d;b;c;')
熱點內容
怎麼看聯系人存儲位置 發布:2025-01-15 22:47:14 瀏覽:792
旗艦560配置的是什麼發動機 發布:2025-01-15 22:40:59 瀏覽:624
sql多表連接查詢 發布:2025-01-15 22:33:12 瀏覽:219
android網路休眠 發布:2025-01-15 22:32:12 瀏覽:348
怎麼不下魯大師查看電腦配置 發布:2025-01-15 22:30:23 瀏覽:309
php頁面亂碼 發布:2025-01-15 22:28:49 瀏覽:845
夢幻寶貝腳本 發布:2025-01-15 22:27:36 瀏覽:256
安卓怎麼調成2g網 發布:2025-01-15 22:21:40 瀏覽:284
android小車 發布:2025-01-15 22:21:15 瀏覽:923
微信怎麼沒有設置密碼 發布:2025-01-15 22:19:00 瀏覽:686