2015-12-29 7 views
0

Я добавил новый столбец в таблицу «werknemer», столбец называется «salaris_schaal».SQL, как обновить новый столбец с операторами для каждой строки

Я хочу, чтобы в этой колонке int, который может сказать, какой размер зарплаты служащий («werknemer»). «Саларис» - это заработная плата сотрудника.

Шкала окладов обеспечивает минимальную заработную плату и максимальную зарплату, я составил этот запрос с помощью службы поддержки (поиска). И я думаю, что это ближе всего, я могу получить atm, я пробовал разные запросы, но это не сработало.

UPDATE werknemer 
SET salaris_schaal = 
    CASE 
     WHEN salaris > 700 and salaris < 1200 
     THEN salaris_schaal = 1 
     WHEN salaris > 1201 and salaris < 1400 
     THEN salaris_schaal = 2 
     WHEN salaris > 1401 and salaris < 2000 
     THEN salaris_schaal = 3 
     WHEN salaris > 2001 and salaris < 3000 
     THEN salaris_schaal = 4 
     WHEN salaris > 3001 and salaris < 9999 
     THEN werknemer.salaris_schaal = 5 
END 

Я видел, что его также можно SELECT и END as UPDATE, что лучший способ справиться с этим?

Я довольно новичок в SQL и много программирую в JAVA, можно ли использовать что-то вроде операторов if и else в SQL?

ответ

3

Вы были почти там, удалите назначение salaris_schaal в каждом THEN из Case заявление.

Попробуйте этот синтаксис

UPDATE werknemer SET salaris_schaal = 
CASE 
WHEN salaris > 700 and salaris < 1200 
THEN 1 
WHEN salaris > 1201 and salaris < 1400 
THEN 2 
WHEN salaris > 1401 and salaris < 2000 
THEN 3 
WHEN salaris > 2001 and salaris < 3000 
THEN 4 
WHEN salaris > 3001 and salaris < 9999 
THEN 5 
END 

Примечание: Когда salaris>=9999 или salaris<=700 затем salaris_schaal будет присвоен NULL

+0

Спасибо! работал, как я намеревался !, я изменил evry '<' на '<=' –

Смежные вопросы