【问题标题】:Select specific rows with SQL Server XML column type选择具有 SQL Server XML 列类型的特定行
【发布时间】:2010-02-16 11:44:41
【问题描述】:

我正在尝试从类似于以下定义的表中选择数据:

Column     |    Data Type
-------------------------
Id         |    Int
DataType   |    Int
LoggedData |    XML

但我只想选择那些具有特定 DataType 值的行,并且在 LoggedData 列中包含一个字符串(或计算一段 XPath)。

快速的谷歌搜索没有任何用处,我有点急于得到答案......我会继续搜索,但如果有人能同时帮助我解决这个问题,我真的很感激。

编辑 _澄清

所以,我所追求的是这样的,但格式正确......

select Id, LoggedData from myTable where DataType = 29 and LoggedData.query('RootNode/ns1:ChildNode[@value="searchterm"]');

可能还不清楚...

【问题讨论】:

    标签: sql-server xml tsql select


    【解决方案1】:

    如果您想通过 searchterm(如 SQL 变量)进行过滤,您可能需要使用如下内容:

    Select Id, LoggedData From myTable Where DataType = 29 And 
    LoggedData.exist('RootNode/ns1:ChildNode[@value=sql:variable("@searchterm")]')=1
    

    @searchterm 是您的 SQL 变量。

    【讨论】:

      【解决方案2】:

      这不适合你吗?

      SELECT
        Id, 
        LoggedData 
      FROM
        myTable 
      WHERE
        DataType = 29 
        AND LoggedData.exist('RootNode/ns1:ChildNode[@value="searchterm"]') = 1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-01
        • 2019-07-06
        相关资源
        最近更新 更多