Co jest nie tak z instrukcją CASE mojego sqlite3?

Mój kod jest następujący:

SELECT COUNT(_id) AS count FROM general WHERE _id = 1 CASE WHEN count > 0 THEN UPDATE general SET userGivenId = 'xxx' WHERE _id = 1 ELSE INSERT INTO general (userGivenId) VALUES ('xxx' ) END

Z błędem:

android.database.sqlite.SQLiteException: near "CASE": syntax error: , while compiling: SELECT COUNT(_id) AS count FROM general WHERE _id = 1 CASE WHEN count > 0 THEN UPDATE general SET userGivenId = 'xxx' WHERE _id = 1 ELSE INSERT INTO general (userGivenId) VALUES ('xxx' ) END

To najkrótsze zapytanie, którego użyję. Dlaczego to robię, ponieważ moje inne zapytania będą miały wiersze, które wymagają aktualizacji, ale niektóre nie mogą być dotykane. Użycie zastąpi zastąpi wszystkie dane (przynajmniej tak to działa dla mnie na moim telefonie z Androidem). Na przykład moja klasa File będzie miała ścieżkę filePath, ale czasami odpowiedź z serwera zwróci wartość null i tylko zaktualizuję plik, jeśli serwer zwróci nowy plik.

Czy zapomniałem coś napisać?

questionAnswers(1)

yourAnswerToTheQuestion