【问题标题】:Looping within SQL(ite) SELECT在 SQL(ite) SELECT 中循环
【发布时间】:2015-03-02 04:07:03
【问题描述】:

以下 SQLite 查询有效:

SELECT Name,
(CASE 
WHEN P1=1 THEN 1 
WHEN P2=1 THEN 2 
WHEN P3=1 THEN 3 
WHEN P4=1 THEN 4 
WHEN P5=1 THEN 5 
ELSE NULL
END) AS Col
FROM table

但是有没有办法 loop 然后 WHEN 声明?关注this question and answer我试过了:

SELECT Nachname, Vorname,
(CASE 
DECLARE @i int = 0
  WHILE @i < 5 BEGIN
    SET @i = @i + 1
    WHEN P@i=1 THEN @i 
  END
END) AS Col
FROM table

但这不起作用,说:error in statement: near "@i": syntax error

有关完整信息,我将通过 sqldf 函数在 R 上应用此语句。

【问题讨论】:

  • 你到底想达到什么目的?
  • P1P5 是列名。它们要么为空,要么值为 1。

标签: sql sqlite loops


【解决方案1】:

SQLite 没有动态创建列名的机制。

您必须手动列出所有列,或者从您的程序中动态创建 SQL 查询。

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 2011-05-31
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2021-03-31
    • 1970-01-01
    • 2016-10-11
    相关资源
    最近更新 更多