Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Что у вас выдаёт select cast( sqrt(24) as int ) [from . . .] ?  [new]
Таблоид
Member

Откуда:
Сообщений: 9456
Блог
ms sql: 4 (dev ed, 2005)
firebird: 5 (диалекты 1 и 3)
oracle 11g: 5

Сомнения закрались при взгляде на ms sql.

Как по SQL стандарту должно быть ?
29 ноя 13, 17:22    [15214333]     Ответить | Цитировать Сообщить модератору
 Re: Что у вас выдаёт select cast( sqrt(24) as int ) [from . . .] ?  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3148
Блог
Таблоид,

Caché 2014.1

select castsqrt(24) as int ), castsqrt(24) as numeric(1,0) )

Результат:
Expression_1Expression_2
45

Цитата из документации
When casting a numeric results in a shortened value, the numeric is truncated, not rounded. For example, casting 98.765 to INT returns 98

Casting Numerics


Таблоид
Как по SQL стандарту должно быть ?
Стандарт SQL'92 говорит:
The choice of whether to round or truncate is implementation-defined.
29 ноя 13, 19:13    [15214959]     Ответить | Цитировать Сообщить модератору
 Re: Что у вас выдаёт select cast( sqrt(24) as int ) [from . . .] ?  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
warstone=> select cast( sqrt(24) as int ), cast( sqrt(24) as numeric(1,0) );
 sqrt | sqrt
------+------
5 | 5
(1 row)
1 янв 14, 03:20    [15370394]     Ответить | Цитировать Сообщить модератору
 Re: Что у вас выдаёт select cast( sqrt(24) as int ) [from . . .] ?  [new]
ЮВ
Member

Откуда:
Сообщений: 508
СУБД ЛИНТЕР:

select cast( sqrt(24) as int ), cast( sqrt(24) as numeric(1,0) );


 
------ ------
4 | 5
9 янв 14, 11:26    [15388974]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить