2015-01-04 86 views
0

以下SQLite的查询工作:SQL(ITE)内循环选择

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 [email protected]=1 THEN @i 
    END 
END) AS Col 
FROM table 

但这并没有工作,他说:error in statement: near "@i": syntax error

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

+0

什么是P @ i .. ?? – Dhaval 2015-01-04 12:48:17

+0

你究竟想达到什么目的? – Mureinik 2015-01-04 12:49:44

+0

'P1'到'P5'是列名。它们要么是空的,要么是1的值。 – Geoff 2015-01-04 12:50:59

回答

0

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

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