Главная страница
    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-29378
DelphiNew
2004-01-29 09:24
2004.02.10
ListBox


4-29681
BarlaZ
2003-12-08 07:30
2004.02.10
Как сделать ScreenShot главной формы моего приложения?


1-29318
Ciberrus
2004-01-30 04:53
2004.02.10
Как писать в Richedit в строку


3-29281
Art76
2004-01-16 17:41
2004.02.10
Проблема с редактированием полей таблицы при вводе русских символ


1-29383
Almaz
2004-02-01 05:04
2004.02.10
AutoComplete в TWebBrowser





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