SQl Function 創(chuàng)建函數(shù)實(shí)例介紹
在SQL中系統(tǒng)已為我們提供了很非常豐富的函數(shù):例:聚會(huì)函數(shù)avg, sum,count,max,min 日期函數(shù):Day,Month,Year等等 為我們?nèi)粘i_(kāi)發(fā)節(jié)省很多時(shí)間 但是有一些特殊需求的話SQL 也提供自己創(chuàng)建函數(shù)的功能下面舉一小例子:需求: 某一訂單表 編號(hào),訂單號(hào),產(chǎn)品名稱(chēng) 要知道 某一訂單號(hào)的產(chǎn)品名稱(chēng) 名稱(chēng)之間用逗號(hào)(,)隔開(kāi) 如下圖:
我們創(chuàng)建一個(gè)標(biāo)題函數(shù): StrName 創(chuàng)建過(guò)程類(lèi)似創(chuàng)建存儲(chǔ)過(guò)程 如下:
點(diǎn)擊右鍵創(chuàng)建 表值函數(shù)與標(biāo)量函數(shù) 從名稱(chēng)就可以分出來(lái) 一個(gè)返回表(集合) 標(biāo)題(單一) 在這個(gè)小例子中因?yàn)槲覀冎环祷孛?所以創(chuàng)建一個(gè)標(biāo)量函數(shù) 代碼如下:
Create FUNCTION [dbo].[OrderDetailGetStrNameByOrderId] ( @OrderId int ) RETURNS varchar(500) AS BEGIN -- Declare the return variable here declare @StrPassengername varchar(500) set @StrPassengername='' select @StrPassengername=@StrPassengername+ Passengername +', ' from OrderDetail where OrderId=@OrderId select @StrPassengername=substring(@StrPassengername,0,len(@StrPassengername)) -- Return the result of the function RETURN @StrPassengername END
創(chuàng)建好之后在就可以像avg,sum等函數(shù)一樣的使用 減少代碼量 如下
select distinct A.OrderId, (SELECT [dbo].[OrderDetailGetStrNameByOrderId](A.OrderId)) StrName from OrderDetail A
完畢。
相關(guān)文章
SQL2005、SQL2008允許遠(yuǎn)程連接的配置說(shuō)明(附配置圖)
這篇文章主要介紹了SQL2005、SQL2008允許遠(yuǎn)程連接的配置過(guò)程,需要的朋友可以參考下2015-08-08SQL處理多級(jí)分類(lèi),查詢(xún)結(jié)果呈樹(shù)形結(jié)構(gòu)
對(duì)于多級(jí)分類(lèi)常規(guī)的處理方法,很多程序員可能是用程序先讀取一級(jí)分類(lèi)記錄,然后通過(guò)一級(jí)分類(lèi)循環(huán)讀取下面的子分類(lèi)2012-08-08還原Sql?Server數(shù)據(jù)庫(kù)BAK備份文件的3種方式以及常見(jiàn)錯(cuò)誤總結(jié)
日常后端開(kāi)發(fā)中,我們有時(shí)候需要查看之前備份數(shù)據(jù)庫(kù)的信息用于排錯(cuò)糾正項(xiàng)目問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于還原Sql?Server數(shù)據(jù)庫(kù)BAK備份文件的3種方式以及常見(jiàn)錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2023-02-02SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解
本文主要介紹了SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03分發(fā)服務(wù)器 系統(tǒng)拋出18483錯(cuò)誤,未能連接服務(wù)器,因?yàn)?'distributor_admin''未定義遠(yuǎn)程登陸
錯(cuò)誤18483,未能連接服務(wù)器,因?yàn)?'distributor_admin '未在該服務(wù)器上定義遠(yuǎn)程登錄。2010-07-07sql server的一個(gè)有趣的bit位運(yùn)算分享
sql server中沒(méi)有bool類(lèi)型,而是用bit類(lèi)型來(lái)表示bool值,估計(jì)是為了節(jié)省存儲(chǔ)空間,下面為大家介紹下這個(gè)有趣的bit位運(yùn)算,感興趣的朋友可以參考下2013-09-09SQL?SERVER常用的日期與時(shí)間查詢(xún)總結(jié)
這篇文章介紹了SQL?SERVER常用日期與時(shí)間查詢(xún)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04SQL中查找某幾個(gè)字段完全一樣的數(shù)據(jù)
本文分享SQL語(yǔ)句實(shí)現(xiàn)表中字段的組合累加排序的實(shí)例代碼,希望能給大家做一個(gè)參考。2016-06-06SQL查詢(xún)某列指定長(zhǎng)度的字符串多余的用省略號(hào)來(lái)表示
有時(shí)候?yàn)榱嗣烙^,只需要顯示前面幾個(gè)字符串,剩下的可以用省略號(hào)來(lái)表示,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-11-11