SQLite INSERT с SELECT

У меня проблема с запросом INSERT. Я хочу вставить некоторые фиксированные значения в качестве имени, а также некоторые расчетные значения. Простой пример:

INSERT INTO Players 
VALUES('Name', 10.0, SELECT COUNT(*) AS Amount FROM Stack7 WHERE Name LIKE '%Name%', 1.0)

Игроки за столом:

CREATE TABLE `Players` (
    `Name`  TEXT,
    `Points`    REAL,
    `Games` REAL,
    `Result`    REAL
)

Компилятор говорит: рядом с "SELECT": синтаксическая ошибка:


person user2923339    schedule 10.06.2015    source источник


Ответы (1)


Поместите свой выбор в скобки:

INSERT INTO Players 
VALUES('Name', 
       10.0, 
       (SELECT COUNT(*) AS Amount FROM Stack7 WHERE Name LIKE '%Name%'), 
       1.0);

Таким образом, компилятор знает, где начинается и где заканчивается одно значение, определенное оператором select. И вы можете использовать запятую (,) внутри скобок, если это необходимо.

person Simulant    schedule 10.06.2015
comment
Невероятно, что это было так просто! Я работал над ним около 2 часов. Есть ли возможность вставить значение, рассчитанное на основе двух предыдущих? Представьте себе другой SELECT, возвращающий, например. столбец Points вместо 10.0. Можем ли мы поместить что-то похожее на (Столбцы/Количество) вместо последнего вставленного значения (1.0)? В форме выше не работает - нет такой колонки: Очки: не видит эти выборки. - person user2923339; 10.06.2015