Главная страница
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.024 c
14-29590
Ega23
2004-01-19 10:57
2004.02.10
Вчера кино по ОРТ показывали


4-29659
Pohil
2003-12-05 10:34
2004.02.10
Как скрыть процесс под NT


1-29471
Сергей Петров
2004-01-30 11:53
2004.02.10
background у TPanel с использованием ScrollBy.


1-29463
Dimasss
2004-01-30 14:54
2004.02.10
как открыть фаил


1-29420
Boroda Oleg
2004-01-31 11:09
2004.02.10
Господа, как отлавливать события изменения значений в таблице?