#sql #decimal
#sql #десятичное число
Вопрос:
Я попытался выполнить формулировку вопроса в книге IBM с указанным ответом, но я получил сообщение об ошибке
SELECT недопустим в этой позиции
SELECT LASTNAME, SALARY,
DECIMAL(SALARY*1.05,9,2) AS "INC-Y-SALARY",
DECIMAL(SALARY*1.05/12,9,2) AS "INC-M-SALARY"
FROM EMPLOYEE
WHERE SALARY*1.05 <= 20000
ORDER BY SALARY
Ошибка исчезла, когда я заменил вторую и третью строки на
SALARY*1.05 AS "INC-Y-SALARY",
SALARY*1.05/12 AS "INC-M-SALARY"
но для вопроса нужны эти столбцы с двумя десятичными знаками
Комментарии:
1. Вы не можете применить специфичный для IBM Db2 синтаксис к MySQL…
2. действительно? я не знал .. другие вопросы были в порядке
3. Пометьте свой вопрос базой данных, которую вы используете.
4. @a_horse_with_no_name операционная система не использует MySQL. Вероятно, это DB2.
5. @forpas но в названии вопроса написано «в MySQL»
Ответ №1:
Вы ищете CAST()
?
SELECT LASTNAME, SALARY,
CAST(SALARY*1.05 AS DECIMAL(9,2)) AS "INC-Y-SALARY",
CAST(SALARY*1.05/12 AS DECIMAL(9,2)) AS "INC-M-SALARY"
Вот скрипка db<> .
Комментарии:
1. @arina . . . Попробуйте еще раз, произошла опечатка.
Ответ №2:
я нашел решение, используя truncate. раньше я не знал, как использовать truncate…
SELECT LASTNAME, SALARY,
TRUNCATE((SALARY*1.05),2) AS "INC-Y-SALARY",
TRUNCATE((SALARY*1.05/12),2) AS "INC-M-SALARY"
FROM EMPLOYEE
WHERE SALARY*1.05 <= 20000
ORDER BY SALARY;
спасибо за всю помощь!
примечание: я использую MySQL