Вероятно, это хорошо известные вопросы, но я не могу найти ответ в документах. Если я бегу эти запросы:Зачем мне нужен запрос CAST()?
SELECT @next := 2, @amount := 1;
SELECT @next := 0.2, @amount := 0.1, @result := @next - @amount;
я получить неправильно @result = «0»
При запуске 2-й запрос еще раз, результат будет правильным.
Если я использую литье типов во втором запросе и снова запускаю оба запроса, результат будет правильным. I.e.,
SELECT @next := 0.2, @amount := 0.1, @result := CAST(@next AS DECIMAL(2,2)) - @amount;
Почему это происходит? Что мне читать?
Ах, я понял - пользовательская переменная сохраняет свой начальный тип, и мне нужно явно изменить его, если он не соответствует типу нового назначенного значения! Спасибо. –