gpt4 book ai didi

SQL XML 解析拆分字母 'TH' 上的字符串

转载 作者:行者123 更新时间:2023-12-02 01:22:13 24 4
gpt4 key购买 nike

我想根据特殊符号将字符串拆分为多个值。例如,这是字符串

JdwnrhþTHIMPHUþOTHþþ10/1991þ02/02/2011þBHUTAN

我希望它是:

Jdwnrh THIMPHU OTH 10/1991 02/02/2011 BHUTAN

我正在使用以下 SQL:

DECLARE @delimiter VARCHAR(50)
SET @delimiter='þ'
;WITH CTE AS
(
SELECT
CAST('<M>' + REPLACE(REPLACE(CAST(DATA as nvarchar(MAX)), @delimiter , '</M><M>'), '&', '&amp;') + '</M>' AS XML)
AS BDWCREGPREVADDR_XML
FROM [JACS_RAVEN_DATA_OLD].dbo.BDWCREGPREVADDR
)

SELECT
BDWCREGPREVADDR_XML.value('/M[1]', 'varchar(50)') As streetNo,
BDWCREGPREVADDR_XML.value('/M[2]', 'varchar(50)') As suburb,
BDWCREGPREVADDR_XML.value('/M[3]', 'varchar(3)') As stateCode,
BDWCREGPREVADDR_XML.value('/M[4]', 'varchar(10)') As postalCode,
BDWCREGPREVADDR_XML.value('/M[7]', 'varchar(50)') As country,
BDWCREGPREVADDR_XML.value('/M[5]', 'varchar(50)') As dateFrom,
BDWCREGPREVADDR_XML.value('/M[6]', 'varchar(50)') As dateTo
FROM CTE
GO

除了作为示例提供的字符串之外,该查询适用于所有字符串。对于上述字符串,查询返回以下内容:

'Jdwnrh' ' ' 'IMPHU' 'O' ' ' '10/1991' '02/02/2011' 'BHUTAN'

代码似乎将字母“TH”作为新属性并拆分了字符串。有谁知道如何解决这个问题?

最佳答案

这似乎与您的整理有关。在 Latin1_General_CS_AS 中,þ 字符被认为等同于 th(因为它是 Old English letter,发音时听起来像“th”)。

print replace('thornþ' collate Latin1_General_CS_AS,'þ','1') 
' output: 1orn1

并非所有归类都是如此;例如,在 Latin1_General_BIN 中,它们是分开的:

print replace('thornþ' collate Latin1_General_BIN,'þ','1') 
' output: thorn1

所以也许你可以看看 changing the collation包含 þ 字符的列。

关于SQL XML 解析拆分字母 'TH' 上的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339342/

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