DROP TABLE table1;
CREATE TABLE table1
(
Vaccinationstatus VARCHAR(10),
Vaccinated VARCHAR(3)
);
INSERT INTO table1 (Vaccinationstatus)
VALUES ('yes');
SELECT * FROM table1;
UPDATE table1
SET table1.Vaccination_status = 'Vaccinated'
WHERE table1.Vaccinated = 'yes'
UPDATE table1
SET table1.Vaccination_status = 'Vaccinated'
CASE
WHEN table1_Vaccinated = 'Yes'
ELSE Vaccination_status
-- If the table1.Vaccinated say 'yes' depending on the row which said yes update the table1.Vaccination_status to 'Vaccinated' for those row that said yes only--
END;
我不斷收到錯誤:
ORA-00933: SQL 命令未正確結束。
我正在嘗試更新 table1.Vaccination_status 以更新到unvaccinated僅當table1.Vaccinated = 'YES'表示是的行并且不更新表示不的人時。
我也想讓它只在滿足這些條件時才更新。我嘗試了更新陳述句,但我認為我做得不對。
有任何想法嗎?
uj5u.com熱心網友回復:
它區分大小寫。所以“是”不等于“是”
當然,您可以使用 COLLATION,或者使用 LOWER 或 UPPER。
例子
CREATE TABLE table1 ( VictimId int, VaccinationStatus VARCHAR2(10), Vaccinated VARCHAR2(3) DEFAULT 'no' ); INSERT ALL INTO table1 (VictimId, Vaccinated) VALUES (1, 'yes') INTO table1 (VictimId) VALUES(2) SELECT 1 FROM DUAL;
SELECT * From table1;受害者 | 疫苗接種狀態 | 接種疫苗 -------: | :---------------- | :--------- 1 | 空 | 是的 2 | 空 | 不
UPDATE table1 SET VaccinationStatus = 'Vaccinated' WHERE lower(Vaccinated) = lower('Yes')
SELECT * From table1;受害者 | 疫苗接種狀態 | 接種疫苗 -------: | :---------------- | :--------- 1 | 已接種 | 是的 2 | 空 | 不
db<>在這里擺弄
uj5u.com熱心網友回復:
根據錯誤,您錯過了所獲得反饋的要點。存在語法錯誤:您在其中一個陳述句的末尾缺少分號:
UPDATE table1 SET table1.Vaccination_status = 'Vaccinated' WHERE table1.Vaccinated = 'yes';
除此之外,確實確保以相同的方式拼寫“是”和“是”。我建議使用值為 0(否,假)或 1(是,真)的數字列。這將防止這些型別的常見錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385726.html
