English 中文(简体)
SQL exist
原标题:SQL Server XML Column exist() query

假设我拥有2005年服务器表,并有一个Xml栏,其中包含以下数值:

CREATE TABLE XmlTest (
   XMLid int,
   Data xml)

INSERT XMLTest 
VALUES ( 1 ,  <data><item><type v="1" /><value v="12.56" /></item><item><type     v="3" /><value v="DEBIT" /></item></data>  )

INSERT XMLTest 
VALUES ( 2 ,  <data><item><type v="1" /><value v="99.22" /></item><item><type v="3" /><value v="CREDIT" /></item></data>  )

INSERT XMLTest 
VALUES ( 3 ,  <data><item><type v="3" /><value v="12.56" /></item><item><type v="1" /><value v="DEBIT" /></item></data>  )

我想测试的是“三”类和“三”类和“三”类物品的存在。

我使用了以下现有职能:

SELECT *
FROM XmlTest
WHERE Data.exist( /data/item/type[@v=  3  ] ) = 1
AND Data.exist( /data/item/value[@v=  DEBIT  ] ) = 1

然而,这给我留下了XMLid 1和3的row。

谁可以概述我对《惠予公约》条款有何改动,只记录哪一个项目,哪一类债务与价值为3,而价值损失与价值为“DEBIT”? i.e 只记录XMLid 1

增 编

最佳回答

为此:

SELECT *
FROM XmlTest
WHERE Data.exist( /data/item[type[@v=  3  ] and value[@v=  DEBIT  ]] ) = 1
问题回答

暂无回答




相关问题
How to write this T-SQL WHERE condition?

I ve got two tables: TableA Col1 Col2 TableB Col3 Col4 I want to join them together: SELECT * from TableA join TableB ON (...) Now, in place of ... I need to write an expression ...

Customer and Order Sql Statement

TSQL query to select all records from Customer that has an Order and also select all records from customer that does not have an Order. The table Customer contains a primary key of CustomerID. The ...

Recommended way of querying multiple Versioned tables

Have a win 2003 box with MSSQL 2005 running on it. There is a database which is populated every morning with new/modified SalesOrder made the previous day. The database has several tables: SalesOrder, ...

update duplicate record

I have a table with the following fields Id Name IsPublic i need to write a sql query that updates IsPublic to false where name has a duplicate. Only one of the duplicates should have IsPublic = ...

Define variable to use with IN operator (T-SQL)

I have a Transact-SQL query that uses the IN operator. Something like this: select * from myTable where myColumn in (1,2,3,4) Is there a way to define a variable to hold the entire list "(1,2,3,4)"? ...

Selecting records during recursive stored procedure

I ve got a content management system that contains a hierarchical structure of categories, with sub-categories subject to different ordering options at each level. Currently, that s retrieved by a (...

热门标签