Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 解析sql中的nvarchar(max)数据字段_Sql Server_Tsql_Split - Fatal编程技术网

Sql server 解析sql中的nvarchar(max)数据字段

Sql server 解析sql中的nvarchar(max)数据字段,sql-server,tsql,split,Sql Server,Tsql,Split,我有一个类似“marketplace-used-new-ebook-rental\u new-rental\u used”的字段,其中“rental\u new”是一个整体,等等。这是sting中所有可能的元素,但它们可以是任意顺序,并包含一个或多个片段。我如何将其分解,以便解释所有不同的组合?我也无法在此数据库上创建函数 你真的有三个选择 在应用层做这些工作 写一个游标来完成它 使用XML来实现这一点 下面的示例是针对XML的 注意:只有在可以保证输入字符串不包含任何XML字符的情况下,才能使

我有一个类似“marketplace-used-new-ebook-rental\u new-rental\u used”的字段,其中“rental\u new”是一个整体,等等。这是sting中所有可能的元素,但它们可以是任意顺序,并包含一个或多个片段。我如何将其分解,以便解释所有不同的组合?我也无法在此数据库上创建函数

你真的有三个选择

在应用层做这些工作

写一个游标来完成它

使用XML来实现这一点

下面的示例是针对XML的

注意:只有在可以保证输入字符串不包含任何XML字符的情况下,才能使用XML。一个带或&的字符串,查询将失败

SELECT distinct a.split_me 
FROM
 (
   SELECT cast('<X>'+replace('marketplace-used-new-ebook-rental_new-
          rental_used','-','</X><X>')+'</X>' as XML) as xml_convert 
 )xml_data
 CROSS APPLY
 ( 
     SELECT fdata.D.value('.','nvarchar(50)') as split_me 
     FROM xml_data.xml_convert.nodes('X') as fdata(D)
 ) a

SQL server 2016有一个内置的功能来分解数据,但在此之前,它是这三个选项之一

sql的供应商和版本是什么?SSMS 2014 sql版本12.0。