2015-01-04 122 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查詢。