1

Тема: select (з використанням інструкції Case) Оракл

Написати запит, який змінює дані в таблиці Books наступним чином: якщо книги були видані після 2008 року, тоді їх тираж збільшити на
--1000 екзмплярiв, інакше тираж збільшити на 100 од. Примітка! Скористатися інструкцією CASE

select quantitybooks,case 
when date_of_publish between '01.01.2008' and '18.07.2020'then QUANTITYBOOKS+1000 when 
date_of_publish not between '01.01.2008' and '18.07.2020'then QUANTITYBOOKS+100 end as books_quantity 
from books; 

Але чомусь не змінюється кількість проданих книг. Не відбувається ніяких змін

2

Re: select (з використанням інструкції Case) Оракл

Господи, ви взагалі хоч щось про SQL читали чи просто навмання намагаєтеся якось виплутатися? SELECT нічого не змінює, змінює UPDATE.

Подякували: Betterthanyou, fed_lviv2

3

Re: select (з використанням інструкції Case) Оракл

Так, звичайно. Зовсім забув про апдейт.

update Books
set QUANTITYBOOKS=case 
when date_of_publish between '01.01.2008' and '18.07.2020'then QUANTITYBOOKS+1000 when 
date_of_publish not between '01.01.2008' and '18.07.2020'then QUANTITYBOOKS+100 end;  
SQL Error: ORA-00904: "QUANTITYBOOKS": invalid identifier
00904. 00000 -  "%s: invalid identifier"

4

Re: select (з використанням інструкції Case) Оракл

остаточний варіант

update BOOKS 
set QUANTITYBOOKS=case 
when date_of_publish between '01.01.2008' and '18.07.2020'then +1000 when 
date_of_publish not between '01.01.2008' and '18.07.2020'then +100
end;

5

Re: select (з використанням інструкції Case) Оракл

Десь ви неправильно написали назву стовпця.