Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Вниз

Помогите написать простенькую функцию на 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-29368
$tranger
2004-01-28 20:39
2004.02.10
Отображеник SPLASH окна


14-29589
mixvictor
2004-01-18 22:29
2004.02.10
Нейронные сети


14-29585
Denis_Ac
2004-01-20 07:48
2004.02.10
Даешь Революцию!!!!


1-29330
dima_matrix
2004-01-27 20:55
2004.02.10
Форма в новом потоке


7-29629
Floppy
2003-11-24 10:08
2004.02.10
Расшарить ресурс на своем компе для пользователей локальной сети





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский