gpt4 book ai didi

mysql - 如何在mysql中创建表值函数

转载 作者:行者123 更新时间:2023-12-04 11:47:45 25 4
gpt4 key购买 nike

我正在从 SqlServer 2008 迁移到 MySql,并且我有很多使用通用表值函数来拆分 varchar 的存储过程。
sqlserver 函数声明是:

CREATE FUNCTION [dbo].[fnSplit](
@sInputList VARCHAR(8000) -- List of delimited items
, @sDelimiter VARCHAR(8000) = ',' -- delimiter that separates items
) RETURNS @List TABLE (item varchar(50))

/* SAMPLE
select * from fnSplit('12 345 67',' ')
select * from fnSplit('12##34#5##67','##')
*/

BEGIN

DECLARE @sItem VARCHAR(8000)

WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0
BEGIN
SELECT @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))),
@sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList))))

IF LEN(@sItem) > 0
INSERT INTO @List SELECT @sItem
END

IF LEN(@sInputList) > 0
INSERT INTO @List SELECT @sInputList -- Put the last item in

RETURN
END

最佳答案

无法在我的 SQL 服务器中编写表值存储函数。 MySQL 存储函数返回 仅单个值 .但是,如果情况需要一个函数返回一组数据,那么您只有两种选择。您可以使用一些分隔符和结果集创建一个字符串并将其返回给调用者。

关于mysql - 如何在mysql中创建表值函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com