如何正确使用“with”命令

我是哈桑

我有一个查询并且它可以工作,通过它我可以获得类别子集。

with cte as (
    Select nid 
    from TB_Category 
    where nid = 429
    union ALL
    select ca.nid 
    from cte ct 
    inner join TB_Category ca on ca.parentid = ct.nid
)
SELECT p.nid 
from TB_Category p 
inner join cte ct on ct.nid = p.nid

要删除选定的类别,我使用以下命令,但它给出了错误:

DELETE FROM TB_Category 
WHERE nid in (
    with cte as (
        Select nid 
        from TB_Category 
        where nid = 429
        union ALL
        select ca.nid 
        from cte ct 
        inner join TB_Category ca on ca.parentid = ct.nid
    )
    SELECT p.nid 
    from TB_Category p 
    inner join cte ct on ct.nid = p.nid
)

显示以下错误:

关键字“WHERE”附近的语法不正确。

关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

关键字“from”附近的语法不正确。

关键字“with”附近的语法不正确。

关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

')' 附近的语法不正确。

泰伦78

您可以使用连接删除:

WITH cte AS (
   SELECT nid 
   FROM TB_Category 
   WHERE nid= 429
   UNION ALL
   SELECT ca.nid 
   FROM cte ct 
   INNER JOIN TB_Category ca ON ca.parentid = ct.nid
)
DELETE t
FROM TB_Category t
INNER JOIN cte c ON c.nid = t.nid

但请注意,如果您在 nid 和 parentid 之间有真正的约束,则删除操作不会那么简单 - 如果删除尝试在子记录之前处理父记录,您可能会遇到约束冲突。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何正确使用rbreak命令?

如何正确使用“ using”命令?

我如何正确使用awk命令

正确使用uuencode命令

如何使用 dbGetQuery 命令正确编写查询?

如何在Google Big Query中正确使用GROUP BY命令?

如何使用 grep 或其他命令以正确的方式提取匹配?

从CMD使用时如何正确引用PowerShell命令路径

如何使用Indy HTTP Get命令正确终止线程?

如何在tcl的split命令中正确使用

如何正确执行命令并使用它导致sed?

如何在这里正确使用启动命令?

如何正确设置sed命令

在 MATE 中使用命令小程序时如何正确获取命令输出?

正确使用MVVM和命令

正确使用命令模式?

如何使用qsub向集群提交cat命令并正确使用管道

如何使用 FlatPak 正确安装 LibreOffice 以在 $PATH 环境变量中使用 libreoffice 命令?

在git中,如何显示我不正确使用命令而不实际不正确使用命令时获得的使用情况概述?

Flink:如何使用命令行界面取消正确的作业?

如何使用命令提示符以正确的顺序合并文件

如何使用单引号和双引号正确构建长命令行?

如何使用D3轴命令正确地换位X和Y轴?

如何使用CMake execute_process()正确调用MSYS2 Bash命令?

如何正确地将破折号 (-) 与 unix 命令一起使用?

如何考虑特殊的正则表达式正确使用sed替换命令的向后引用

使用If,then ... fi命令如何确定用户是否输入了正确的文件格式?

如何在自定义脚本中正确使用 nohup 命令

Dockerfile RUN命令损坏。如何正确逃脱?