powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Деление на 0
6 сообщений из 6, страница 1 из 1
Деление на 0
    #32009549
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги. Такая проблема. Есть функция, в ней селект, в котором может быть деление на 0.
Select a/b from table1
Величина b может принимать значение 0.

Всякие SET ARITHIGNORE ON и т.п. что-то не особо помогают или я их не верно использую.
...
Рейтинг: 0 / 0
Деление на 0
    #32009550
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не прогонял, но по моему должен пройти:
select a/(case b when 0 then 1 else b end) from table1
...
Рейтинг: 0 / 0
Деление на 0
    #32009551
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да спасибо, только дело в том , что при b = 0 необходимо и возвращать функцией 0.
То есть если в данном селекте при данных условиях b = 0 , то клиенту я тоже должен вернуть 0.
...
Рейтинг: 0 / 0
Деление на 0
    #32009553
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так чуть изменить надо
select (case b when 0 then 0 else a/b end) as result from table1
...
Рейтинг: 0 / 0
Деление на 0
    #32009556
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
))
Спасибо
)))))))))))
...
Рейтинг: 0 / 0
Деление на 0
    #32009638
sahon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо делать след вещи:
SET ANSI_WARNINGS OFF
SET ARITHABORT OFF
SET ARITHIGNORE ON
тада в текущем коннекшене деление на ноль преобразуется в Null - вообщем это и в BOL написано
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Деление на 0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]