我有一个使用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/