sqlite3, SQL. Почему оператор CASE не работает?
import sqlite3 as sq
with sq.connect("test12.db") as con: cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS users2")
cur.execute("""CREATE TABLE IF NOT EXISTS users2 (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
surname TEXT,
age INTEGER,
limit_ TEXT
)
""")
cur.execute("INSERT INTO users2 (id,name,surname, age, limit_) VALUES (NULL, 'Иван','Самарин', 67,'')")
cur.execute("INSERT INTO users2 (id,name,surname, age, limit_) VALUES (NULL, 'Алесандр','Синицин', 41,'')")
cur.execute("INSERT INTO users2 (id,name,surname, age, limit_) VALUES (NULL, 'Григорий','Петров', 36,'')")
cur.execute("INSERT INTO users2 (id,name,surname, age, limit_) VALUES (NULL, 'Федор','Васильев', 10,'')")
cur.execute("""
SELECT name, surname, age, limit_
CASE
WHEN age > 40 THEN 'age > 40'
WHEN age < 40 THEN 'age < 40'
END limit_
FROM users2
""")
выдает sqlite3.OperationalError: near "CASE": syntax error
Ответы (1 шт):
Автор решения: Eugene X
→ Ссылка
SELECT name, surname, age, limit_ -- Тут нет запятой после limit_
CASE
WHEN age > 40 THEN 'age > 40'
WHEN age < 40 THEN 'age < 40'
END limit_ -- Тут совпадает название колонки с предыдущей
FROM users2