Sql 使用CharIndex、Len和Substring从列中定位某些信息
以下是我试图做的,但失败惨重: 我试图从12000多个字符长的列中检索地址。幸运的是,我可以通过XML标记找到地址行1:Sql 使用CharIndex、Len和Substring从列中定位某些信息,sql,sql-server,substring,string-length,Sql,Sql Server,Substring,String Length,以下是我试图做的,但失败惨重: 我试图从12000多个字符长的列中检索地址。幸运的是,我可以通过XML标记找到地址行1: <PermanentAddress> <AddressLine><![CDATA[1234 1st street]]></AddressLine> <City> 以下是我迄今为止所做的工作: select substring(PC.css_record, CHARINDEX('<AddressLine>
<PermanentAddress> <AddressLine><![CDATA[1234 1st street]]></AddressLine> <City>
以下是我迄今为止所做的工作:
select
substring(PC.css_record, CHARINDEX('<AddressLine>', PC.css_record)+ 21, CHARINDEX('</AddressLine>', PC.css_record))
from
table1
我也试着压缩其中的长度函数来计算子字符串函数的长度端,但这给了我一个错误,可能是因为我对SQL还不熟悉,仍然在学习和错误地使用它
还有,有多个标签,但我只关心第一个
如果有人能帮我,那就太棒了
谢谢 你找到了开头:CHARINDEX,PC.css\u record+21
最后:查林德斯,PC.css_记录-3,
现在,您只需通过从终点减去起点来计算长度:
CHARINDEX,PC.css_记录-CHARINDEX,PC.css_记录-24
你找到了开头:CHARINDEX,PC.css\u record+21
最后:查林德斯,PC.css_记录-3,
现在,您只需通过从终点减去起点来计算长度:
CHARINDEX,PC.css_记录-CHARINDEX,PC.css_记录-24
试试这个:
declare @xml xml =
'<PermanentAddress>
<AddressLine><![CDATA[1234 1st street]]>
</AddressLine>
<City>test</City>
</PermanentAddress>'
select @xml.value('(/PermanentAddress/AddressLine)[1]', 'nvarchar(100)')
试试这个:
declare @xml xml =
'<PermanentAddress>
<AddressLine><![CDATA[1234 1st street]]>
</AddressLine>
<City>test</City>
</PermanentAddress>'
select @xml.value('(/PermanentAddress/AddressLine)[1]', 'nvarchar(100)')
您是否将XML数据存储为varchar而不是XML类型?是。我不认为使用xml类型有什么意义,因为我只需要报告中的一小部分信息。您是否将xml数据存储为varchar而不是xml类型?是的。我不认为使用xml类型有什么意义,因为我只需要报告中的一小部分信息。谢谢!你帮了我大忙!非常感谢。你帮了我大忙!