Главная страница
    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.008 c
14-29564
Knight
2004-01-20 13:46
2004.02.10
Радиотелефон - Premier magic 100...


11-29288
mike.dld
2003-05-19 20:38
2004.02.10
MonthCalendar


3-29277
Nick-From
2004-01-16 00:41
2004.02.10
Присвоение параметру ХП значения


1-29321
webmaster
2004-02-02 02:15
2004.02.10
Как заполнить и отправить html форму на сервер (+прокси)


7-29640
Olfi
2003-09-15 21:55
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский