gpt4 book ai didi

sql-server - TSQL 转换 CRM 2011 中的 ChangeData 字段

转载 作者:搜寻专家 更新时间:2023-10-30 20:57:24 24 4
gpt4 key购买 nike

我有一个定界字符串,它充当目标定界字符串的键。我需要知道 2 个值在键序列中的位置,然后只从我的目标字符串中提取这些位置。

例子一
键:,15,90,104,73,95,13,​​14,
目标:中~男~28~绿~右~无~10/04/2013

例子2
键:,14,73,104,95,15,13,​​90,
目标:12/03/2013~绿色~28~右~中~无~男~

我只关心目标中的性别和日期值,键中对应的条目将始终为 14 和 90

一旦我知道这些值的顺序位置(示例 1 中的位置 2 和 7),我需要提取目标字符串的相同部分,这样我就可以在它们自己的变量中得到性别和日期值

我已经更改了我要查找的数据类型以使问题更易于理解

我希望这是有道理的

谢谢

马特

最佳答案

试试这个解决方案-

DECLARE @temp TABLE
(
id INT IDENTITY(1,1)
, k NVARCHAR(100)
, t NVARCHAR(500)
)

INSERT INTO @temp (k, t)
VALUES
(',15,90,104,73,95,13,14,', 'Medium~Male~28~Green~Right~No~10/04/2013'),
(',14,73,104,95,15,13,90,', '12/03/2013~Green~28~Right~Medium~No~Male~')

SELECT
data.id
, data.p
, data.r
FROM (
SELECT
p = p.value('(.)[1]', 'NVARCHAR(50)')
, po = p.value('for $i in . return count(../*[. << $i])', 'int')
, r = r.value('(.)[1]', 'NVARCHAR(50)')
, ro = r.value('for $i in . return count(../*[. << $i])', 'int')
, d.id
FROM (
SELECT
t.id
, txml = CAST('<r><s>' + REPLACE(t.k + ',', ',', '</s>' + '<s>') + '</s></r>' AS XML)
, kxml = CAST('<r><s>' + REPLACE(t.t + '~', '~', '</s>' + '<s>') + '</s></r>' AS XML)
FROM @temp t
) d
CROSS APPLY kxml.nodes('/r/s') t(p)
CROSS APPLY txml.nodes('/r/s') k(r)
) data
WHERE data.po = data.ro - 1
AND data.r IN ('14', '90')
--AND r + data.p != ''
ORDER BY data.id

关于sql-server - TSQL 转换 CRM 2011 中的 ChangeData 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921770/

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