代码之家  ›  专栏  ›  技术社区  ›  ZombieSheep

选择具有SQL Server XML列类型的特定行

  •  2
  • ZombieSheep  · 技术社区  · 16 年前

    我试图从定义类似以下内容的表中选择数据:

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

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

    编辑 _澄清

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

    可能还是不清楚。。。

    2 回复  |  直到 15 年前
        1
  •  1
  •   leoinfo    16 年前

    如果你想通过一个 搜索词 (如SQL变量)您可能需要使用以下内容:

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

        2
  •  0
  •   Tomalak    16 年前

    这对你没有好处吗?

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