2015-01-23 1 views
1

моя цель состоит в следующем:как использовать, если в операторе отбора

выберите имя, адрес, день, hoursworked { если hoursworked> 8, то (hoursworked -8), как ВЗ еще '' } из контрольного набора

как я могу это сделать. Я попытался использовать случай, но я продолжаю получать ошибки относительно не может преобразовать varchar в INT. Мне нужно это в select select.

+0

Счётчик часов хранится как varchar или int в вашем столе? –

ответ

4

Проблема в том, что вы устанавливаете тип столбца с помощью hoursworked-8, то есть столбец должен быть int, но тогда вы также выбираете '', который является varchar. Вместо этого используйте NULL или 0.

SELECT name, address, day, CASE WHEN hoursworked > 8 THEN hoursworked-8 ELSE NULL END AS overtime 
+0

Я считаю, что я пробовал это, но проблема заключалась в том, что hoursworked является десятичным. т. е. 8,52 часа, и, выполняя именно это, и округляет это число до INT, и данные становятся неверными, потому что OT не точен. –