日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQL內(nèi)嵌用戶定義函數(shù)的功能

SQL內(nèi)嵌用戶定義函數(shù)在我們使用SQL數(shù)據(jù)庫中,用途很廣泛。下面就為您詳細(xì)介紹一些SQL內(nèi)嵌用戶定義函數(shù)方面的知識,供您參考。

創(chuàng)新互聯(lián)公司是一家集成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站頁面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)的建站公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。

SQL內(nèi)嵌用戶定義函數(shù)
SQL內(nèi)嵌用戶定義函數(shù)是返回 table 的用戶定義函數(shù)的子集。內(nèi)嵌函數(shù)可用于實(shí)現(xiàn)參數(shù)化視圖的功能。

請看下面的視圖:

 
 
 
  1. CREATE VIEW vw_CustomerNamesInWA AS   
  2. SELECT CustomerID, CompanyName   
  3. FROM Northwind.dbo.Customers   
  4. WHERE Region = 'WA'  

可創(chuàng)建更通用的版本 vw_CustomerNamesInRegion,方法是將 WHERE Region = 'WA' 替換為 WHERE Region = @RegionParameter 并讓用戶指定感興趣的查看區(qū)域。然而,視圖不支持在 WHERE 子句中指定的搜索條件的參數(shù)。

內(nèi)嵌用戶定義函數(shù)可用于支持在 WHERE 子句中指定的搜索條件的參數(shù)。下面是使用戶得以在其選擇中指定區(qū)域的函數(shù)示例:

 
 
 
  1. CREATE FUNCTION fn_CustomerNamesInRegion   
  2. ( @RegionParameter nvarchar(30) )   
  3. RETURNS table   
  4. AS   
  5. RETURN (   
  6. SELECT CustomerID, CompanyName   
  7. FROM Northwind.dbo.Customers   
  8. WHERE Region = @RegionParameter   
  9. )   
  10. GO   
  11. -- Example of calling the function for a specific region   
  12. SELECT *   
  13. FROM fn_CustomerNamesInRegion(N'WA')   
  14. GO  

內(nèi)嵌用戶定義函數(shù)遵從以下規(guī)則:

RETURNS 子句僅包含關(guān)鍵字 table。不必定義返回變量的格式,因?yàn)樗?RETURN 子句中的 SELECT 語句的結(jié)果集的格式設(shè)置。

function_body 不由 BEGIN 和 END 分隔。

RETURN 子句在括號中包含單個 SELECT 語句。SELECT 語句的結(jié)果集構(gòu)成函數(shù)所返回的表。內(nèi)嵌函數(shù)中使用的 SELECT 語句受到與視圖中使用的 SELECT 語句相同的限制。

內(nèi)嵌函數(shù)還可用于提高索引視圖的能力。索引視圖自身不能在其 WHERE 子句搜索條件中使用參數(shù),針對特定用戶的需要調(diào)整存儲的結(jié)果集。然而,可定義存儲與視圖匹配的完整數(shù)據(jù)集的索引視圖,然后在包含允許用戶調(diào)整其結(jié)果的參數(shù)化搜索條件的索引視圖上定義內(nèi)嵌函數(shù)。如果視圖定義較復(fù)雜,則生成結(jié)果集所要執(zhí)行的大多數(shù)工作都涉及在視圖上創(chuàng)建聚集索引時生成聚合或聯(lián)接多個表。之后如果創(chuàng)建引用視圖的內(nèi)嵌函數(shù),則該函數(shù)可應(yīng)用用戶的參數(shù)化篩選,從結(jié)果集中提取由 CREATE INDEX 語句生成的特定行。在執(zhí)行 CREATE INDEX 時復(fù)雜的聚合和聯(lián)接進(jìn)行一次,隨后引用內(nèi)嵌函數(shù)的所有查詢都從簡化的存儲結(jié)果集中篩選行。例如:

定義將所有銷售數(shù)據(jù)聚合到結(jié)果集的視圖 vw_QuarterlySales,該結(jié)果集按季度報(bào)告所有商店的匯總銷售數(shù)據(jù)。

在vw_QuarterlySales上創(chuàng)建聚集索引以具體化包含匯總數(shù)據(jù)的結(jié)果集。

創(chuàng)建篩選匯總數(shù)據(jù)的內(nèi)嵌函數(shù):

 
 
 
  1. CREATE FUNCTION fn_QuarterlySalesByStore   
  2. (   
  3. @StoreID int   
  4. )   
  5. RETURNS table   
  6. AS   
  7. RETURN (   
  8. SELECT *   
  9. FROM SalesDB.dbo.vw_QuarterlySales   
  10. WHERE StoreID = @StoreID   
  11. )  

然后用戶可從內(nèi)嵌函數(shù)進(jìn)行選擇以獲得其特定商店的數(shù)據(jù):

 
 
 
  1. SELECT *   
  2. FROM fn_QuarterlySalesByStore( 14432 )  

滿足在第4步發(fā)出的查詢所需的大多數(shù)工作將按季度聚合銷售數(shù)據(jù)。該工作在第2步進(jìn)行一次。第4步中的每個 SELECT 語句都使用函數(shù) fn_QuarterlySalesByStore 篩選出用戶的某個商店特有的聚合數(shù)據(jù)。

【編輯推薦】

SQL Server排序規(guī)則的應(yīng)用

SQL Server內(nèi)連接和外連接的區(qū)別

判斷表中是否存在SQL自增列

SQL嵌套SELECT語句的用法

SQL Server UPDATE語句的用法


網(wǎng)站標(biāo)題:SQL內(nèi)嵌用戶定義函數(shù)的功能
文章出自:http://www.5511xx.com/article/dhicdod.html