在子查询(MS SQL)中使用WITH

北本

我正在尝试在子查询中执行一些递归操作,但似乎无法使用WITH-我错过了一些东西吗?或者是否有解决方法?

WHERE swn.stocknode_id in 
(
    WITH Hierachy(stocknode_id, short_desc, PARENTNODE_ID, level)

    AS

    (
        SELECT 
            a.stocknode_id,
            0 AS level

        FROM stock_website_node AS a  

        WHERE a.short_desc = 'XXXXXXXX'
        AND a.PARENTNODE_ID = 0

        UNION ALL

        SELECT 
            a.stocknode_id,
            ch.level + 1

        FROM stock_website_node AS a

        INNER JOIN Hierachy ch
        ON a.PARENTNODE_ID = ch.stocknode_id
    )

    SELECT 
        stocknode_id

    FROM Hierachy

    WHERE level > 0
) 

我遇到了:

Incorrect syntax near the keyword 'WITH'.

拉杜·格奥尔基(Radu Gheorghiu)

公用表表达式必须在顶层。

您需要将CTE从WHERE子句中删除,并WHERE像下面这样引用stocknode_id

WHERE swn.stocknode_id in (SELECT stocknode_id FROM Hierachy WHERE level > 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS QUERY / SQL子查询语法

来自分类Dev

MS QUERY / SQL子查询语法

来自分类Dev

在SQL中的子查询中使用group by

来自分类Dev

在pl / sql中使用子查询块

来自分类Dev

在SQL中的子查询中使用group by

来自分类Dev

在SQL Server分组中使用子查询

来自分类Dev

如何在SQL中使用子查询?

来自分类Dev

在 Postgres SQL 中使用子查询

来自分类Dev

在查询中使用子查询

来自分类Dev

MS-Access SQL语法错误中的子查询

来自分类Dev

如何将Oracle多参数子查询转换为MS SQL子查询

来自分类Dev

如何将Oracle多参数子查询转换为MS SQL子查询

来自分类Dev

如何在SQL MERGE中使用不同的子查询

来自分类Dev

在SQL中使用不存在和子查询

来自分类Dev

如何在SQL中使用JOIN编写子查询

来自分类Dev

SQL:在子查询中使用多列进行过滤

来自分类Dev

如何在SQL MERGE中使用不同的子查询

来自分类Dev

SQL在子查询中使用来自连接的表

来自分类Dev

SQL Server:在 IN() 子查询中使用 OPENROWSET 结果

来自分类Dev

在SQL查询中使用解码

来自分类Dev

在SQL查询中使用变量

来自分类Dev

在SQL查询中使用jDateChooser

来自分类Dev

在 SQL 查询中使用变量

来自分类Dev

在Cloudkit中使用子查询

来自分类Dev

在子查询中使用SUM

来自分类Dev

在PostgreSQL中使用子查询

来自分类Dev

为什么在 SQL 连接语句中使用 Group By 而在子查询中使用 Order By?

来自分类Dev

在子查询中使用查询中的列

来自分类Dev

在linq查询中使用子查询