![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
деление без остатка [D7, XP]
Sergey2 © (2009-08-12 10:22:00)как в MsSQL в запросе проверить делится число без остатка или нет ?
Дмитрий Белькевич (2009-08-12 12:56:00) [1]
> "Но это уже будет другой NULL, не такой как первый или
> второй" (с) Petr V. Abramov
Троичная логика посильнее фауста Гёте (с).
Anatoly Podgoretsky (2009-08-12 11:23:00) [2]> Медвежонок Пятачок (12.08.2009 10:35:04) [4]
Кот Базилио и лиса Алиса.
Ega23 (2009-08-12 11:02:00) [3]
> делится ли нулл на нулл без остатка?
Нет, не делится, там NULL в результате будет.
"Но это уже будет другой NULL, не такой как первый или второй" (с) Petr V. Abramov
Если результат 0 - делится. Любой другой результат (включая exception) - нет.
:)
Медвежонок Пятачок (2009-08-12 10:59:00) [4]а вот еще подокапываюсь. не к кейсу конкртено
оба аргумента нулл
дележ даст нулл
в остатке нулл.
делится ли нулл на нулл без остатка?
:)
Ega23 (2009-08-12 10:56:00) [5]Ну в этом случае операторы заранее должны быть на NULL проверены.
А точнее, на подобные столбцы я всегда NOT NULL накладываю.
Медвежонок Пятачок (2009-08-12 10:49:00) [6]ну в общем да, только после такой проверки неясно, можно ли дальше использовать результат деления, сами аргументы и остаток.
в случае если будет ёпик файл
Ega23 (2009-08-12 10:46:00) [7]
> в смысле второй вариант не использовал бы
Declare @A int;
Declare @B int;
Set @A=NULL;
Set @B=5;
Select case @A % @B when 0 then 'Делится!' else 'Epic Fail' end
---------
Epic Fail
(1 row(s) affected)
Медвежонок Пятачок (2009-08-12 10:43:00) [8]в смысле второй вариант не использовал бы
Sergey2 (2009-08-12 10:43:00) [9]спасиб. точно %.
я вот так проверял сначала @A - @A / @b * @b = 0
Медвежонок Пятачок (2009-08-12 10:42:00) [10]я бы такой кейс не использовал. на случай нула
Ega23 (2009-08-12 10:40:00) [11]гм...
Интересно, а какой Case быстрее сработает? Или монопенисуально?
Медвежонок Пятачок (2009-08-12 10:35:00) [12]да можно не проверять.
любое делится без остатка
Ega23 (2009-08-12 10:34:00) [13]
Declare @A int;
Declare @B int;
Set @A=10;
Set @B=5;
Select case @A % @B when 0 then 'Делится!' else 'Epic Fail' end
turbouser (2009-08-12 10:30:00) [14]
SELECT CASE WHEN (25 % 5)=0 THEN 'Без остатка' ELSE 'С остатком' END
Медвежонок Пятачок (2009-08-12 10:27:00) [15]делится