У меня есть (Android) таблица SQLite с двумя столбцами, Col1
и Col2
, содержащие текст. Я хочу обновить Col1
, чтобы он содержал текст с максимальной длиной из Col1
и Col2
из той же строки. У меня уже есть рабочий запрос, но этот запрос выполняется довольно долго для большого набора данных.
Пример данных:
| Col1 | Col2 | ...
---------------
| AB | A |
| A | ABC |
| AB | ABCD |
Ожидаемый результат обновления:
| Col1 | ...
--------
| AB |
| ABC |
| ABCD |
Рабочий (но медленный и трудный для чтения) запрос:
UPDATE table
SET Col1 = (
SELECT Col2
FROM table AS innerTable
WHERE table.ROWID = innerTable.ROWID)
WHERE length(Col1) < length(Col2)
Я в основном ищу что-то подобное без вложенных запросов:
UPDATE table SET Col1 = maxLengthString(Col1, Col2)
Есть ли у меня какая-либо существующая функция упускать из виду? Обратите внимание, что это SQLite, поэтому я не могу использовать CREATE FUNCTION
.
Спасибо за вашу помощь!