У меня есть таблица TRANSACTIONS в sqlite
, и я добавил в нее новый столбец.Я хочу заполнить новый столбец на основе записей тех же строк.Например (приведенная ниже таблица не содержит фактических данных ...):
productId brc newColumn
10032 10032-100101 32-A
10231 10231-100102 231-B
Мне удалось получить желаемый вывод newColumn:
//The below statement gives me the newColumn result
select cast(substr(productId, 2, 5) as integer) ||
case
when cast(substr(brc, 37, 1) as integer) == 0 then ''
when cast(substr(brc, 37, 1) as integer) == 1 then '-Α'
when cast(substr(brc, 37, 1) as integer) == 2 then '-Β'
when cast(substr(brc, 37, 1) as integer) == 3 then '-Γ'
when cast(substr(brc, 37, 1) as integer) == 4 then '-Δ'
when cast(substr(brc, 37, 1) as integer) == 5 then '-Ε'
END as newColumn
from TRANSACTIONS
Теперь,Я хочу обновить таблицу!Я попытался:
update TRANSACTIONS
set newColumn = (
select cast(substr(productId, 2, 5) as integer) ||
case
when cast(substr(brc, 37, 1) as integer) == 0 then ''
when cast(substr(brc, 37, 1) as integer) == 1 then '-Α'
when cast(substr(brc, 37, 1) as integer) == 2 then '-Β'
when cast(substr(brc, 37, 1) as integer) == 3 then '-Γ'
when cast(substr(brc, 37, 1) as integer) == 4 then '-Δ'
when cast(substr(brc, 37, 1) as integer) == 5 then '-Ε'
END from TRANSACTIONS
)
where brc = brc;
Но я получаю одинаковое значение во всех строках newColumn ... Чего мне здесь не хватает?