gpt4 book ai didi

c# - sqldatareader 中的括号

转载 作者:行者123 更新时间:2023-11-30 21:00:14 26 4
gpt4 key购买 nike

我有一个使用 SQLLite 的数据库,我正在使用 C#。我进行了查询并且它有效,但是当查询有 ( ) 时它失败并给出了关于 SQL 语法的异常。

我创建了一个函数来帮助我使用 SQLiteDataReader 进行查询

    public SQLiteDataReader SQLExecuteReader(string sqlStatement, SQLiteConnection sqliteConnection)
{
SQLiteCommand command = new SQLiteCommand(sqlStatement, sqliteConnection);
return command.ExecuteReader();
}

我这样使用它:

SQLiteDataReader reader = SQLExecuteReader("--SQL QUERY--", sqliteConnection);

在我的例子中,我使用查询来比较具有相同结构的两个表。当查询是:

SELECT * FROM Table1 EXCEPT SELECT * FROM Table2

有效。

但是当查询是

(   SELECT * FROM table1
EXCEPT
SELECT * FROM table2)
UNION ALL
( SELECT * FROM table2
EXCEPT
SELECT * FROM table1)

或者

(SELECT * FROM Table1 EXCEPT SELECT * FROM Table2

它失败了。

当我在查询中使用 ( ) 时,我遗漏了什么以及为什么会失败?

最佳答案

尝试执行这个查询,

SELECT *
FROM
(
SELECT * FROM Table1
EXCEPT
SELECT * FROM Table2
) a
UNION ALL
SELECT *
FROM
(
SELECT * FROM Table2
EXCEPT
SELECT * FROM Table1
) b

关于c# - sqldatareader 中的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com