Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно упростить запрос [MSSQL]


Страницы:   1 2 3

Ольга ©   (2009-07-07 11:22:00) 

В таблице есть поле float. В запросе это поле нужно представить в виде двух натуральных чисел - целая и дробная части без округлений.
Делаю с помощью строковых функций - получилась громоздкая конструкция. Уверена, что можно сделать проще, не могу найти как.

IF object_id('tempdb..#tmp') is not null DROP TABLE #tmp
CREATE TABLE #tmp(val2 float)
INSERT INTO #tmp VALUES (-956.5)

SELECT  ABS(cast(CASE WHEN CHARINDEX('.',cast(val2 as varchar(20)))>0
 THEN substring(cast(val2 as varchar(20)),1,CHARINDEX('.',cast(val2 as varchar(20)))-1)
 ELSE NULL END as int)),
    cast(CASE WHEN CHARINDEX('.',cast(val2 as varchar(20)))>0
 THEN substring(cast(val2 as varchar(20)),CHARINDEX('.',cast(val2 as varchar(20)))+1,2)
 ELSE NULL END as int)
FROM #tmp


Кщд   (2009-07-07 11:54:00) [41]

>Ольга ©   (07.07.09 11:22)  
floor, round, ceiling не работают?


Ольга   (2009-07-07 11:54:00) [42]


> А зачем понадобилась дробная часть плавающего числа как
> целое БЕЗ ОКРУГЛЕНИЯ

Так у заказчика хранятся данные (таблица создана до рождения Билла Гейтса): целая часть - количество "табуреток", дробная - количество "валенок". Делаю нормальную БД, нужно перенести данные.


MsGuns   (2009-07-07 11:43:00) [43]

А зачем понадобилась дробная часть плавающего числа как целое БЕЗ ОКРУГЛЕНИЯ ?


Ega23   (2009-07-07 11:26:00) [44]

Я бы в numeric сначала попробовал скастовать, а дальше уже с ним игрался бы.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо