使用用例-sqlite插入?
我的语法有问题。 我需要在sqlite中使用IF,并替换IF-CASE。 我的陈述不起作用,我不知道,怎么了使用用例-sqlite插入?,sql,sqlite,if-statement,case,sql-insert,Sql,Sqlite,If Statement,Case,Sql Insert,我的语法有问题。 我需要在sqlite中使用IF,并替换IF-CASE。 我的陈述不起作用,我不知道,怎么了 CASE WHEN EXISTS( SELECT sql FROM sqlite_master WHERE name = 'TEST_TABLE' AND type = 'table' AND sql LIKE '%aaaa%' )THEN INSERT INTO atabela_new(id, idMain, idHis
CASE
WHEN EXISTS(
SELECT sql
FROM sqlite_master
WHERE name = 'TEST_TABLE' AND
type = 'table' AND
sql LIKE '%aaaa%'
)THEN
INSERT INTO atabela_new(id, idMain, idHistory, aNew)
SELECT id, idMain, idHistory, aNew FROM a_tabela
ELSE
INSERT INTO atabela_new(id, idMain, idHistory)
SELECT id, idMain, idHistory FROM a_tabela;
如果您只想插入一条语句(如果为true)或另一条语句(如果为false),那么为什么不使用If语句呢
IF EXISTS(SELECT sql FROM sqlite_master WHERE name = 'TEST_TABLE' AND type = 'table' AND sql LIKE '%aaaa%')
BEGIN
INSERT INTO atabela_new(id, idMain, idHistory, aNew) SELECT id, idMain, idHistory, aNew FROM a_tabela
END
ELSE
INSERT INTO atabela_new(id, idMain, idHistory) SELECT id, idMain, idHistory FROM a_tabela;
END
假设“重新”的默认值为空:
否则,您需要将该逻辑放入应用程序代码中。是否有错误?在SQLite中,您可以在表达式中使用CASE,而不是以这种方式!你真的假装要做什么?如果条件为真,我想做'INSERT',如果条件不为真,我想做另一个'INSERT',因为SQLite没有那种形式的if语句。这就是问题的重点,如何使用对SQLite有效的语法来完成您所编写的内容。
INSERT INTO atabela_new(id, idMain, idHistory, aNew)
SELECT id,
idMain,
idHistory,
CASE
WHEN EXISTS
(SELECT sql FROM sqlite_master WHERE name = 'TEST_TABLE' AND type = 'table' AND sql LIKE '%aaaa%')
THEN aNew
ELSE NULL
END
FROM a_tabela