以下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
函数应用此声明。
答案 0 :(得分:0)
SQLite没有动态创建列名的机制。
您必须手动列出所有列,或者从程序中动态创建SQL查询。