狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[點晴永久免費OA]如何在SQL Server中使用內置函數或創建自定義split等函數

admin
2021年12月18日 10:31 本文熱度 3175
SQLserver 中沒有內置的split函數,需要自己構建一個表值函數,具體代碼如下:

----------下面方法是以“,”來分割字符串
CREATE FUNCTION [dbo].[Split](@separator VARCHAR(64)=',',@string NVARCHAR(max))
  RETURNS @ResultTab TABLE (
     Id    INT ,
     Res     NVARCHAR(500) 
 )
 AS
 BEGIN
     DECLARE @Num INT
     
     IF(@string IS NOT NULL AND @string <> '' AND LEN(@string)>0)
     BEGIN
         IF(CHARINDEX(@separator,@string)>0)        --判斷要截取的字符是否存在
         BEGIN
             SET @Num=0
             WHILE (CHARINDEX(@separator,@string)>0)        --如果要截取的字符存在,就繼續循環
             BEGIN
                 SET @Num=@Num+1
                 
                 INSERT INTO @ResultTab(Id,Res)        --截取字符串,插入表變量
                 SELECT @Num,LEFT(@string,CHARINDEX(@separator,@string)-1)
                 
                 --把已經截取并插入的字符串刪除
                 SET @string=STUFF(@string,1,CHARINDEX(@separator,@string)-1+LEN(@separator),'')    
             END
             
             --如果最后一個截取的字符串為空,那就不插入了
             --例如:'0123,0456,0789,' 這樣的字符串最后剩下的就是空字符串了
             IF(@string IS NOT NULL AND @string <> '')
             BEGIN
                 INSERT INTO @ResultTab(Id,Res)
                 SELECT @Num+1,@string 
            END            
         END
         ELSE
         BEGIN
             INSERT INTO @ResultTab(Id,Res) SELECT 1,@string 
         END
     END
     ELSE
     BEGIN
         DELETE FROM @ResultTab
     END
     RETURN
 END

例如:使用“,”分割字符串 "001,002,003,004"
SQL語句:select * from [Split](',','001,002,003,004');

結果:


SQL 內置函數

函數的語法

內建 SQL 函數的語法是:

SELECT function(列) FROM 表

函數的類型

在 SQL 中,基本的函數類型和種類有若干種。函數的基本類型是:

  • Aggregate 函數
  • Scalar 函數

合計函數(Aggregate functions)

Aggregate 函數的操作面向一系列的值,并返回一個單一的值。

注釋:如果在 SELECT 語句的項目列表中的眾多其它表達式中使用 SELECT 語句,則這個 SELECT 必須使用 GROUP BY 語句!

"Persons" table (在大部分的例子中使用過)

NameAge
Adams, John38
Bush, George33
Carter, Thomas28

MS Access 中的合計函數

函數描述
AVG(column)返回某列的平均值
COUNT(column)返回某列的行數(不包括 NULL 值)
COUNT(*)返回被選行數
FIRST(column)返回在指定的域中第一個記錄的值
LAST(column)返回在指定的域中最后一個記錄的值
MAX(column)返回某列的最高值
MIN(column)返回某列的最低值
STDEV(column) 
STDEVP(column) 
SUM(column)返回某列的總和
VAR(column) 
VARP(column) 

在 SQL Server 中的合計函數

函數描述
AVG(column)返回某列的平均值
BINARY_CHECKSUM 
CHECKSUM 
CHECKSUM_AGG 
COUNT(column)返回某列的行數(不包括NULL值)
COUNT(*)返回被選行數
COUNT(DISTINCT column)返回相異結果的數目
FIRST(column)返回在指定的域中第一個記錄的值(SQLServer2000 不支持)
LAST(column)返回在指定的域中最后一個記錄的值(SQLServer2000 不支持)
MAX(column)返回某列的最高值
MIN(column)返回某列的最低值
STDEV(column) 
STDEVP(column) 
SUM(column)返回某列的總和
VAR(column) 
VARP(column) 

Scalar 函數

Scalar 函數的操作面向某個單一的值,并返回基于輸入值的一個單一的值。

MS Access 中的 Scalar 函數

函數描述
UCASE(c)將某個域轉換為大寫
LCASE(c)將某個域轉換為小寫
MID(c,start[,end])從某個文本域提取字符
LEN(c)返回某個文本域的長度
INSTR(c,char)返回在某個文本域中指定字符的數值位置
LEFT(c,number_of_char)返回某個被請求的文本域的左側部分
RIGHT(c,number_of_char)返回某個被請求的文本域的右側部分
ROUND(c,decimals)對某個數值域進行指定小數位數的四舍五入
MOD(x,y)返回除法操作的余數
NOW()返回當前的系統日期
FORMAT(c,format)改變某個域的顯示方式
DATEDIFF(d,date1,date2)用于執行日期計算


該文章在 2021/12/18 10:31:08 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved