Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.10;
Скачать: CL | DM;

Вниз

Помогите написать простенькую функцию на SQL   Найти похожие ветки 

 
Бывающий   (2004-01-20 15:43) [0]

Функция должна возвращать целую часть числа. Если число отрицательно, то 0. Типа во так, но надо на SQL-e:

Function I(Expression)
Expression = Int(Expression)
If Expression < 0 Then Expression = 0
I = Expression
End Function


 
Skif   (2004-01-20 15:49) [1]

case
when test<=0 then p=0
when test>0 then p=ROUND(test,0)


 
stone ©   (2004-01-20 15:50) [2]

round и abs комбинируй


 
Skif   (2004-01-20 15:53) [3]

сори, вкралась маленькая ошибочка:

select test,case
when test<=0 then test=0
when test>0 then ROUND(test,0)
from you_table;


 
Polevi ©   (2004-01-20 15:55) [4]

end забыл


 
Бывающий   (2004-01-20 15:57) [5]

Не совсем так. Мне надо взять целую часть, а round округляет.
20.8 - должно давать 20, а не 21.


 
Бывающий   (2004-01-20 15:58) [6]

FLOOR нашел!


 
Ega23 ©   (2004-01-20 16:00) [7]


>
> select test,case
> when test<=0 then test=0
> when test>0 then ROUND(test,0)
> from you_table;

Неправильно.

select test=case when test<=0 then 0
when test>0 then ROUND(test,0) end
from you_table


 
Skif   (2004-01-20 16:08) [8]

>Ega23
Я писал только в SQL, без конвертации в делфу. Так что принимаю ошибку только when test<=0 then 0 ;))) Авсе остальное с командной строки монитора MySQL чудно работает.


 
Fay ©   (2004-01-20 16:12) [9]

не ROUND, а FLOOR !


 
ZrenBy ©   (2004-01-20 16:12) [10]

select sign((sign(Field)+1))*floor(Field)


 
Бывающий   (2004-01-20 16:24) [11]

Спасибо всем, коллеги!


 
Ega23 ©   (2004-01-20 16:32) [12]


> Skif (20.01.04 16:08) [8]
> >Ega23
> Я писал только в SQL, без конвертации в делфу. Так что принимаю
> ошибку только when test<=0 then 0 ;))) Авсе остальное с
> командной строки монитора MySQL чудно работает.


1. В качестве СУБД был указан MSSQL, а не MySQL.
2. end после Case был забыт.
3. Сама конструкция case была написана неправильно.
4. Это чистый TSQL, Delphi тут не при чём.



Страницы: 1 вся ветка

Текущий архив: 2004.02.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
6-29510
Вадим
2003-12-10 11:43
2004.02.10
Получить почту


3-29278
jago
2004-01-16 08:24
2004.02.10
Передача ADOConnection от VBasic DLL к Delphi программе


3-29262
Samvel
2004-01-17 13:10
2004.02.10
относительная ссылка


3-29280
Евген
2004-01-09 12:16
2004.02.10
Проблема с IBDataSet


4-29676
FBI
2003-12-08 13:48
2004.02.10
Подбор