繁体   English   中英

SQL字符串拆分

[英]SQL String Split

经过一番建议后,我目前在SQL的一个名为response_string的nvarchar字段中存储了一串数据,我只想弄清楚<tag></tag>之间的措辞。
例如<tag>test</tag>这将返回test

我目前正在使用下面的代码,但对我来说似乎太复杂了,我想知道是否有更好的编写方法。

(case when charindex('</tag>',[response_String])>charindex('<tag>',[response_String]) 
then substring([response_String],charindex('<tag>',[response_String])+(11),(charindex('</tag>',[response_String])-charindex('<tag>',[response_String]))-(11))  end) 

不幸的是,由于我必须使用此代码的方式,我无法使用函数。

select try_cast('<tag>test</tag>' as xml).value('/tag[1]','nvarchar(100)')

您可以更改带有该列的标签的选择查询,如下所示。 如果丢失,它将不会引发错误。

select replace( replace(column_name , "<tag>","" ), "</tag>","") from table_name

如果最多有2-3个节点,则可以按上述方式使用,但是如果考虑的数据存储方式很多。.3-4套替换可能会使查询位尴尬,可以创建一个视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM