如何在WHERE子句中使用SELECT语句编写SQL DELETE语句?

路易斯·卡米

数据库:Sybase Advantage 11

为了使数据规范化,我尝试删除从以下SELECT语句中得到的结果

SELECT tableA.entitynum
FROM tableA q
INNER JOIN tableB u on (u.qlabel = q.entityrole AND u.fieldnum = q.fieldnum) 
WHERE (LENGTH(q.memotext) NOT IN (8,9,10) 
OR q.memotext NOT LIKE '%/%/%')
AND (u.FldFormat = 'Date')
;

这是DELETE我想出声明:

DELETE FROM tableA
WHERE (SELECT q.entitynum
FROM tableA q
INNER JOIN tableB u on (u.qlabel = q.entityrole AND u.fieldnum = q.fieldnum) 
WHERE (LENGTH(q.memotext) NOT IN (8,9,10) 
OR q.memotext NOT LIKE '%/%/%')
AND (u.FldFormat = 'Date'))
;

当我尝试运行以下语句时,我不断收到此错误:

ERROR IN SCRIPT: poQuery: Error 7200:  AQE Error:  State = S0000;   NativeError = 2124;
[iAnywhere Solutions][Advantage SQL Engine]Invalid operand for operator: = Boolean value
cannot be operated with non-Boolean value.

我也尝试过以下语句:

DELETE FROM tableA 
INNER JOIN tableB u on (u.qlabel = tableA.entityrole AND u.fieldnum = tableA.fieldnum) 
WHERE (LENGTH(q.memotext) NOT IN (8,9,10) 
OR tableA.memotext NOT LIKE '%/%/%')
AND (u.FldFormat = 'Date')
;

结果是:

ERROR IN SCRIPT: poQuery: Error 7200:  AQE Error:  State = 42000;   NativeError = 2117;
[iAnywhere Solutions][Advantage SQL Engine] Unexpected token: INNER -- Expecting semicolon.
-- Location of error in the SQL statement is: 23 (line: 2 column: 1)

有人可以帮助我正确构造一个DELETE查询,从而导致删除正确的数据吗?

亚历克斯·W

您需要在TableA中标识主键才能删除正确的记录。主键可以是唯一一列,也可以是多个列的组合,它们唯一地标识表中的一行。如果没有主键,则可以将ROWID伪列用作主键。

DELETE FROM tableA
WHERE ROWID IN 
  ( SELECT q.ROWID
    FROM tableA q
      INNER JOIN tableB u on (u.qlabel = q.entityrole AND u.fieldnum = q.fieldnum) 
    WHERE (LENGTH(q.memotext) NOT IN (8,9,10) OR q.memotext NOT LIKE '%/%/%')
      AND (u.FldFormat = 'Date'));

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在select语句中添加列并在where子句中使用ir

来自分类Dev

在select语句中使用WHERE子句

来自分类Dev

如何在execute select语句where子句中使用变量而不会在列上出错?

来自分类Dev

如何在SQL 2000的where子句中使用case语句

来自分类Dev

如何在单个 SQL 语句的 where 子句中使用两个 LIKE?

来自分类Dev

如何在SQL Server中的数据透视表语句中编写where子句

来自分类Dev

在 INSERT INTO ... SELECT 语句中使用多个 WHERE 子句

来自分类Dev

使用 SELECT SQL 语句声明变量以在 WHERE 子句中使用

来自分类Dev

SQL在WHERE IN子句中使用CASE语句

来自分类Dev

在where子句中使用OR优化SQL语句

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 CASE 语句

来自分类Dev

SQL的where子句中的select语句

来自分类Dev

SQL select语句在where子句中

来自分类Dev

如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

来自分类Dev

在UPDATE语句中使用WHERE子句

来自分类Dev

在where子句中使用case语句

来自分类Dev

在case的then子句中使用select语句

来自分类Dev

如何在SQL语句的Select子句中引用子查询

来自分类Dev

JDBC如何在带where子句的预准备语句中使用占位符?

来自分类Dev

如何从SQL的where子句中删除语句

来自分类Dev

如何在MySQL where和where子句中的语句中使用正则表达式

来自分类Dev

WHERE子句中的Select语句

来自分类Dev

SQL Server:如何在insert语句中使用if语句

来自分类Dev

如何在sql和php中的“ SELECT DISTINCT CASE WHEN”语句中使用“ ORDER BY”语句?

来自分类Dev

SQL语句where子句中的case语句

来自分类Dev

使用 IN 语句的 Where 子句中的 Case 语句

来自分类Dev

如何在case语句中编写select语句

来自分类Dev

如何使用MySql在sql语句中使用SELECT CASE

来自分类Dev

如何交叉连接表并使用交叉连接的where子句中的select语句中的字段

Related 相关文章

  1. 1

    如何在select语句中添加列并在where子句中使用ir

  2. 2

    在select语句中使用WHERE子句

  3. 3

    如何在execute select语句where子句中使用变量而不会在列上出错?

  4. 4

    如何在SQL 2000的where子句中使用case语句

  5. 5

    如何在单个 SQL 语句的 where 子句中使用两个 LIKE?

  6. 6

    如何在SQL Server中的数据透视表语句中编写where子句

  7. 7

    在 INSERT INTO ... SELECT 语句中使用多个 WHERE 子句

  8. 8

    使用 SELECT SQL 语句声明变量以在 WHERE 子句中使用

  9. 9

    SQL在WHERE IN子句中使用CASE语句

  10. 10

    在where子句中使用OR优化SQL语句

  11. 11

    在 SQL Server 的 WHERE 子句中使用 CASE 语句

  12. 12

    SQL的where子句中的select语句

  13. 13

    SQL select语句在where子句中

  14. 14

    如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

  15. 15

    在UPDATE语句中使用WHERE子句

  16. 16

    在where子句中使用case语句

  17. 17

    在case的then子句中使用select语句

  18. 18

    如何在SQL语句的Select子句中引用子查询

  19. 19

    JDBC如何在带where子句的预准备语句中使用占位符?

  20. 20

    如何从SQL的where子句中删除语句

  21. 21

    如何在MySQL where和where子句中的语句中使用正则表达式

  22. 22

    WHERE子句中的Select语句

  23. 23

    SQL Server:如何在insert语句中使用if语句

  24. 24

    如何在sql和php中的“ SELECT DISTINCT CASE WHEN”语句中使用“ ORDER BY”语句?

  25. 25

    SQL语句where子句中的case语句

  26. 26

    使用 IN 语句的 Where 子句中的 Case 语句

  27. 27

    如何在case语句中编写select语句

  28. 28

    如何使用MySql在sql语句中使用SELECT CASE

  29. 29

    如何交叉连接表并使用交叉连接的where子句中的select语句中的字段

热门标签

归档