字符串分解4
CREATE FUNCTION [dbo].[ufn_Table]
(
@chvnKeyWords NVARCHAR(4000), -- 要分隔的关键字字符串集
@chvnSeparator NCHAR(1), -- 要使用的分隔符,默认为'|'
@chvn NCHAR(10),
@chvnS NCHAR(50)
) RETURNS @tResult TABLE (
Num INT IDENTITY(1, 1) NOT NULL,
Word NVARCHAR(200) NOT NULL,
chvn NVARCHAR(10) NOT NULL,
chvnS NVARCHAR(50) NOT NULL
)
--$Encode$--
--==================================
-- 功能:分隔关键字字串集插入数据表
-- 作者: XXXX
-- 创建: XXXX-XX-XX
-- 修改: XXXX-XX-XX XX XXXXX
-- 调用:SELECT * FROM dbo.ufn_SplitToTable2('1|2|3','|')
-- SELECT * FROM dbo.ufn_STable('AAA-BB-00060 70A~85B/AAA-BB-00060A 80D~85D','/','','')
-- SELECT * FROM dbo.ufn_Table('style A/C/E:Black/Skin/Lilac',' ','','')
-- SELECT * FROM dbo.ufn_Tab('AAA-BB-00040/39/38','/','','')
--==================================
AS
BEGIN
DECLARE @Column15 VARCHAR(100)
DECLARE @Column16 VARCHAR(100)
DECLARE order_c CURSOR FOR ------------一层游标------------------------------------
SELECT ltrim(rtrim(WORD)) FROM dbo.ufn_SplitToTable(ltrim(rtrim(@chvnKeyWords)),ltrim(rtrim(@chvnSeparator)),ltrim(rtrim(@chvn)),ltrim(rtrim(@chvnS)))
--打开游标--
OPEN order_c
--开始循环游标变量--
FETCH next FROM order_c INTO @Column15
WHILE @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态--
BEGIN
DECLARE orderc CURSOR FOR ------------一层游标------------------------------------
SELECT ltrim(rtrim(word)) FROM dbo.ufn_SplitToTable(ltrim(rtrim(@Column15)),':',ltrim(rtrim(@chvn)),ltrim(rtrim(@chvnS)))
--打开游标--
OPEN orderc
--开始循环游标变量--
FETCH next FROM orderc INTO @Column16
WHILE @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态--
BEGIN
insert @tResult(Word,chvn,chvnS)
VALUES(@Column16,@chvn,@chvnS);
FETCH next FROM orderc INTO @Column16
END
CLOSE orderc --------------------关闭一层游标-------------------------
DEALLOCATE orderc --------------------释放一层游标-------------------------
FETCH next FROM order_c INTO @Column15
END
CLOSE order_c --------------------关闭一层游标-------------------------
DEALLOCATE order_c --------------------释放一层游标-------------------------
RETURN
END
GO

浙公网安备 33010602011771号