select 99.foo
переводится как select 99. as foo
(как вы можете оставить пространство перед псевдонимом), выбрав '99 «. как numeric
. Поскольку после десятичной точки нет чисел, она просто отображает «99».
Вы можете подтвердить это, запустив:
select sql_variant_property(99., 'BaseType')
numeric
который возвращает.
Это не такой же, как select 99 as foo
, который делает выбор «99», а как int
. Это может быть подтверждено стереосистеме и обновите:
select sql_variant_property(99, 'BaseType')
который возвращает int
.
Хотя все три запроса кажутся одинаковыми, первый отличается от следующих двух в типе возвращаемого значения.
Interesting; и SELECT $ .foo вернется 0.00 – mg1075
Кроме того, SELECT 99foo дает тот же результат, что и 99.foo, но SELECT $ foo дает ошибку. – mg1075
Не знаете, почему вы говорите, что он работает только с целыми числами? 'select 99.123foo' возвращает столбец с именем' foo' со значением '99.123' для меня –