相关疑难解决方法(0)

`nodes()`方法是否保持文档顺序?

数据类型的nodes()方法是否按xml文档顺序返回节点?

例如,如果有以下数据:

declare @xml xml
set @xml = '<Fruits><Apple /><Banana /><Orange /><Pear /></Fruits>'
Run Code Online (Sandbox Code Playgroud)

被查询为

select T.c.query('.')
from @xml.nodes('/Fruits/*') T(c)
Run Code Online (Sandbox Code Playgroud)

元素将按文档顺序返回吗?select如果order by省略了子句,则返回的行的顺序是未定义的.是这样的select ... from ... .nodes(),还是特殊的?

在某些情况下,是否可以在以下查询的输出中获取非空行集:

declare @xml xml
set @xml = '<Data><Element OrderNo="1" /><Element OrderNo="2" />'
  + '<Element OrderNo="3" /><Element OrderNo="4" />'
  + '<Element OrderNo="5" /></Data>'

select * from (
    select T.c.value('.', 'int') OrderNo1, 
      row_number() over (order by @@spid) OrderNo2
    from @xml.nodes('/Data/Element/@OrderNo') T(c)) sq
where OrderNo1 != OrderNo2
Run Code Online (Sandbox Code Playgroud)

xml t-sql sql-server

13
推荐指数
1
解决办法
2498
查看次数

如何限制子字符串以提取SQL Server中两个空格之间的文本?

如何限制子字符串以提取SQL Server中两个空格之间的文本?

柱

2017-03-09 Today ABC.XYZ Work_In_Progress 
Run Code Online (Sandbox Code Playgroud)

输出应为:

ABC.XYZ
Run Code Online (Sandbox Code Playgroud)

我可以从第二个空格拉出,但不能限制到第三个空格:

SELECT ID, SUBSTRING(HISTORY, CHARINDEX(' ', HISTORY, CHARINDEX(' ', HISTORY) +1)+1,LEN(HISTORY)) 
from Test;
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

3
推荐指数
1
解决办法
840
查看次数

拆分并获取第二行作为值

我正在使用下面的查询来拆分名称,如下所示:

select value from STRING_SPLIT('Name1~Name2~Name3' , '~' );
Run Code Online (Sandbox Code Playgroud)

如何获得第二个名字,即Name2,不使用WHERE条件?

注意:名称可以是动态的

在此处输入图片说明

t-sql sql-server split

1
推荐指数
2
解决办法
2170
查看次数

T-SQL 获取数据库中每行的第 5 个单词

我需要找出如何编写 T-SQL 来获取数据库中每一行中的第 5 个单词

sql t-sql sql-server

-1
推荐指数
1
解决办法
90
查看次数

标签 统计

sql-server ×4

t-sql ×4

sql ×2

split ×1

xml ×1