Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite:如何在CASE语句中使用selectcount?_Sqlite - Fatal编程技术网

sqlite:如何在CASE语句中使用selectcount?

sqlite:如何在CASE语句中使用selectcount?,sqlite,Sqlite,如果列不存在,我将尝试使用SQLite添加一个列。在研究了大量的堆栈溢出问题之后,我认为在SQL语句中实现这一点的唯一方法是使用(但是这仅适用于sqlite v3.16及更高版本) 因此,如果SELECT COUNT查询是>0,我将尝试运行ALTER查询 以下是我的尝试,所有尝试都抛出了语法错误 试试看 试试看 试试看 试试看 试试看 有人知道我做错了什么吗 文件: 请不要给我任何java或C++代码,我只想找一个纯SQLite >解决方案。p> 我不确定您是否能够在纯SQL脚本中完成它。如果

如果列不存在,我将尝试使用SQLite添加一个列。在研究了大量的堆栈溢出问题之后,我认为在SQL语句中实现这一点的唯一方法是使用(但是这仅适用于sqlite v3.16及更高版本)

因此,如果
SELECT COUNT
查询是
>0
,我将尝试运行
ALTER
查询

以下是我的尝试,所有尝试都抛出了语法错误

试试看

试试看

试试看

试试看

试试看

有人知道我做错了什么吗

文件:


请不要给我任何java或C++代码,我只想找一个<强>纯SQLite <强> >解决方案。p> 我不确定您是否能够在纯SQL脚本中完成它。如果SQLite支持,这将很容易。您需要begin/end块和IF语句来有条件地运行代码。Case表达式在未执行的查询级别(仅为文本)上工作。bummer:(我担心这不可能。我尝试了
更改表结果添加api_说明,如果不存在文本默认值“”
,但仍然得到一个错误
错误:重复列名:api_说明
@LukaszSzozdaYou需要一个外部脚本来运行1)查询以检查元数据2)有条件地执行DDL语句。如果只有SQLite支持动态SQL:/Thank you@LukaszSzozda,是的,我认为在纯SQLite中不可能做到这一点
SELECT COUNT(*) AS CNTREC 
   CASE CNTREC 
      WHEN CNTREC > 0 
      THEN
         ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
      END
FROM pragma_table_info('runs') 
WHERE name='scheduledRun';
SELECT COUNT(*) AS CNTREC 
   CASE  
      WHEN CNTREC > 0 
      THEN
         ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
      END
FROM pragma_table_info('runs') 
WHERE name='scheduledRun';
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('runs') WHERE name='scheduledRun';
CASE CNTREC WHEN CNTREC > 0 
THEN
    ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('runs') WHERE name='scheduledRun'
CASE CNTREC WHEN CNTREC > 0 
THEN
    ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('runs') WHERE name='scheduledRun'
CASE WHEN CNTREC > 0 
THEN
    ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END