给定 字符 串
string 1: 'A,B,C,D,E'
string 2: 'X091,X089,X051,X043,X023'
中 的 每 一 个
要 在 临时 表 中 存储 为 :
String1 String2
---------------------
A X091
B X089
C X051
D X043
E X023
格式
已 尝试 : 堆栈 溢出 代码 上 的 SQL Server 版本 。 下面 的 代码 在 SQL Server 上 工作 。 * * 但 我 想要 它 的 mysql 版本 。 请 帮助 ... * *
DECLARE @str1 VARCHAR(1000)= 'A,B,C,D,E';
DECLARE @str2 VARCHAR(1000)= 'X091,X089,X051,X043,X023';
;WITH
--split the first string
a1 AS (SELECT n=0, i=-1, j=0 UNION ALL SELECT n+1, j, CHARINDEX(',', @str1, j+1) FROM a1 WHERE j > i)
,b1 AS (SELECT n, SUBSTRING(@str1, i+1, IIF(j>0, j, LEN(@str1)+1)-i-1) s FROM a1 WHERE i >= 0)
--split the second string
,a2 AS (SELECT n=0, i=-1, j=0 UNION ALL SELECT n+1, j, CHARINDEX(',', @str2, j+1) FROM a2 WHERE j > i)
,b2 AS (SELECT n, SUBSTRING(@str2, i+1, IIF(j>0, j, LEN(@str2)+1)-i-1) s FROM a2 WHERE i >= 0)
--join them by the index
SELECT b1.n
,b1.s AS s1
,b2.s AS s2
FROM b1
INNER JOIN b2 ON b1.n=b2.n
ORDER BY b1.n;
格式
1条答案
按热度按时间hc8w905p1#
可以使用递归的
cte
来拆分字符串,然后将结果连接在一起:See fiddle。