<root>
<row>
<id>1de3427f-4c3b-4ce1-b92f-30fd53d243d0</id>
<verifyRecordId>a380bafc-3407-4c46-8b7c-84c9dde6f6c0</verifyRecordId>
<operation>submit</operation>
<opinion />
<flowId>8db42326-bc6a-4386-9e34-1751ca419225</flowId>
<operationDate>2021-09-24 09:14:04</operationDate>
<operationEx>preset</operationEx>
<beProxyId />
<beProxy />
</row>
<row>
<id>ce8af367-43f8-43d3-ae58-cebc6b51185c</id>
<verifyRecordId>a380bafc-3407-4c46-8b7c-84c9dde6f6c0</verifyRecordId>
<operation>approve</operation>
<opinion>同意</opinion>
<flowId>f98d255a-99eb-432c-8373-e023de624f08</flowId>
<operationDate>2021-09-24 09:22:03</operationDate>
<operationEx />
<beProxyId />
<beProxy />
</row>
<row>
<id>cbe2c46a-3844-4428-a062-c0b107027663</id>
<verifyRecordId>a380bafc-3407-4c46-8b7c-84c9dde6f6c0</verifyRecordId>
<operation>approve</operation>
<opinion>同意</opinion>
<flowId>4a995f66-3963-4e7a-99db-4972268d3757</flowId>
<operationDate>2021-09-24 09:31:49</operationDate>
<operationEx />
<beProxyId />
<beProxy />
</row>
</root> XML数据类型如上,这是一个审批流的XML字段,因为各张单据的审批节点未必一致,所以我想动态的取出最下面的OperationDate的值,请问怎么才能做到? 目前我就只能定义一个变量获取节点数如何再查询,就像这样: declare @a int select @a=Verifylog.value('count(/root/row)','INT') from Tecul_WFVerifyRecord where itemcode='PP2021092385-1' select @a select VerifyLog.query('(/root/row/operationDate)[sql:variable("@a")]') from Tecul_WFVerifyRecord where itemcode='PP2021092385-1'然后再去转为字符串截取字段,但是这样操作只能一张一张的弄效率很低,请问有什么办法能够直接select出来的方法吗? |