[点晴永久免费OA]如何在SQL Server中使用内置函数或创建自定义split等函数
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
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 functions)Aggregate 函数的操作面向一系列的值,并返回一个单一的值。 注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句! "Persons" table (在大部分的例子中使用过)
MS Access 中的合计函数
在 SQL Server 中的合计函数
Scalar 函数Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。 MS Access 中的 Scalar 函数
该文章在 2021/12/18 10:31:08 编辑过 |
关键字查询
相关文章
正在查询... |