Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Результат деления 1 на 2 в запросе  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Нужно в запросе разделить 1 на число больше чем 1, например:
SELECT CAST(1/2 AS DECIMAL(8,2))
в результате получаю 0,00
или так
SELECT CAST(1/2 AS FLOAT)
в результате получаю 0
без преобразования
SELECT 1/2
тоже получаю 0
Подскажите пожалуйста, что я неправельно делаю? Большое спасибо!
25 окт 11, 11:40    [11493871]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
aleks2
Guest
shanton
Подскажите пожалуйста, что я неправельно делаю?

Ты плохо учишся в школе.
25 окт 11, 11:42    [11493893]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Конвертировать надо до операции деления, а не после.
25 окт 11, 11:45    [11493930]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
shanton
тоже получаю 0
А сколько же должно получиться???

ЗЫ. Целое делить на целое получается целое.
25 окт 11, 11:45    [11493941]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
shanton,

вы конечный результат операции конвертируете, а надо аргументы. ну либо вот так напишите SELECT 1.0/2.0.
25 окт 11, 11:46    [11493949]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
Orland
Member

Откуда: Ростов
Сообщений: 71
ты результат преобразовываешь во float, а результат 0.
SELECT CAST(1 as float) /cast (2 AS FLOAT)
25 окт 11, 11:47    [11493958]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Понял, всё логично. Мой родной язык FoxPro, а там немножко другая логика, наверное:
SELECT *, CAST(1/2 AS DOUBLE) FROM  table_osm
получается 0,5.
Всем спасибо!
25 окт 11, 11:50    [11493997]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
Naf
Member

Откуда: Москва
Сообщений: 2695
shanton
Понял, всё логично. Мой родной язык FoxPro, а там немножко другая логика, наверное:
SELECT *, CAST(1/2 AS DOUBLE) FROM  table_osm
получается 0,5.
Всем спасибо!
странная логика
25 окт 11, 12:22    [11494383]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
Usman
Member

Откуда: من ألماتي
Сообщений: 5599
shanton
Нужно в запросе разделить 1 на число больше чем 1


Или так:
select 1 / 2.0
select 1.0 / 2
select 1.0 / 2.0
25 окт 11, 12:31    [11494489]     Ответить | Цитировать Сообщить модератору
 Re: Результат деления 1 на 2 в запросе  [new]
Sekoka
Member

Откуда:
Сообщений: 73
shanton,

точку поставь перед каким нибудь числом, тогда уж точно сделает как надо

SELECT CAST(1/2. AS DECIMAL(8,2))
25 окт 11, 12:35    [11494532]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить