Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
6 / 6 / 3
Регистрация: 29.08.2016
Сообщений: 107

Заменить значение если одно из условий Null

24.09.2019, 09:45. Показов 2449. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как можно подставить значение в ячейку если одно из условий будет равно NULL
В столбце Periodicity отсутствует указанное в запросе значение и мне необходимо вс лучае если запрос возвращает NULL то в ставлялось в ячейку занчение 3

SQL
1
SELECT ISNULL(NULLIF(Periodicity,' ' ),'3') AS Punishment FROM DC_periodicity  WHERE Periodicity = '11' AND Violation = '1'
Пытаюсь применить данный код на в результате запрос все равно показывает пустую ячейку. Подскажите, что нетак в данном запросе
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2019, 09:45
Ответы с готовыми решениями:

Даны действительные числа X, Y. Если X, Y. – отрицательны, то каждое значение заменить его модулем;если отрицательно только одно из них, то оба значен
Даны действительные числа X, Y. Если X, Y. – отрицательны, то каждое значение заменить его модулем;если отрицательно только одно из них, то...

Если ни одно из вложенных условий не выполнилось
Доброго времени суток, возник вопрос. Например у меня есть условие, и в него вложены еще несколько условий, как мне сделать так, чтобы...

Если выполнено несколько условий, выполнить одно действие
Обычно, с тем чем имел дело выглядело так: (Одно условие и целый блок действий) If %a% gtr %b% (действие действие действие ...

4
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416
24.09.2019, 12:55
А как этот запрос должен вывести вам NULL, если вы ему прямо говорите, чтобы он выбирал только "periodicity = 11 и violation = 1" ?
попробуйте такой запрос
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT 
    isnull(Periodicity, 666) AS Punishment 
FROM 
    DC_periodicity  
WHERE 
    (Periodicity = 11
    AND 
    Violation = 1)
    OR
    (Periodicity IS NULL
    AND 
    Violation = 1)
1
6 / 6 / 3
Регистрация: 29.08.2016
Сообщений: 107
24.09.2019, 13:21  [ТС]
Цитата Сообщение от Jungl Посмотреть сообщение
попробуйте такой запрос
К сожалению данный запрос так же выводит только название столбца, при этом не заполняет занчениями которое мне нужны.

В БД в столбце Periodicity у меня оотсутствует значение 11, и мне необходимо в случае если запрос возвращает пустое значение то необходимо выставить 3
0
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416
24.09.2019, 13:47
Цитата Сообщение от AlekseyS_35 Посмотреть сообщение
К сожалению данный запрос так же выводит только название столбца
T-SQL
1
2
3
4
5
6
7
8
9
select 
    isnull((select top 1
                Periodicity
            from 
                DC_periodicity  
            where 
                Periodicity = 11
                AND 
                Violation = 1), 3) as Punishment
1
1726 / 1586 / 165
Регистрация: 25.07.2015
Сообщений: 2,666
24.09.2019, 22:55
Цитата Сообщение от AlekseyS_35 Посмотреть сообщение
В БД в столбце Periodicity у меня оотсутствует значение 11, и мне необходимо в случае если запрос возвращает пустое значение то необходимо выставить 3
Ну так при отсутствии искомого значения, указанного в условии WHERE и ваш запрос , и варианты ,
любезно предоставленные Jungl, не вернут ничего. Именно НИЧЕГО , а не NULL , что
собственно у вас и происходит.
NULL - это возвращаемое пустое значение , а не отсутствие его.
А конструкции типа
T-SQL
1
SELECT ISNULL(NULLIF(Periodicity,' ' ),'3') AS Punishment FROM DC_periodicity  WHERE Periodicity = '11' AND Violation = '1'
или
VB.NET
1
2
3
4
5
6
7
8
isnull((select top 1
                Periodicity
            from 
                DC_periodicity  
            where 
                Periodicity = 11
                AND 
                Violation = 1), 3)
просто абсурдны и обречены на отсутствие ожидаемого результата,
т.к. выборка начинается только после проверки условия WHERE.
В вашем случае должны совпасть два условия Periodicity = 11 и Violation = 1 .
И только после того , как они совпадут отработает оператор SELECT.
В противном случае запрос не вернёт НИЧЕГО , а не NULL.

Добавлено через 6 минут
Исходя из вышесказанного ,немного скорректирую запрос от Jungl и ,думаю, он решит вашу задачу

T-SQL
1
2
3
4
5
6
7
select 
    isnull((select top 1
                Periodicity
            from 
                DC_periodicity  
            where 
                Violation = 1), 3) as Punishment
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2019, 22:55
Помогаю со студенческими работами здесь

Записать условие, которое проверяет список и выдает истину, если выполняется хотя бы одно из заданных условий
Записать условие, которое проверяет список и выдает истину, если выполняется хотя бы одно из заданных условий. Если ни одно из заданных...

Как заменить ЕСЛИМН, если требуется использовать очень много условий?
У меня работает вот такая длинная формула: Задача, решаемая этой формулой - подставить категорию продукта на основании первой буквы...

Fastreport заменить NULL значение
Здравствуйте, подскадите пожалуйста как заменить значение NULL на какое-нибудь другое, чтобы не выскакивало исключение типа ссылается на...

Даны действительные числа x, y. Если x и y отрицательные, то х присвоить значение удвоенного модуля х. Если положительно одно из них, то увеличить у в
Даны действительные числа x, y. Если x и y отрицательные, то х присвоить значение удвоенного модуля х. Если положительно одно из них, то...

Проверить если в строке значение null
Доброго всем суток. Встал такой вопрос надеюсь на вашу помощь! Из формы я вношу значение в бд и нажимаю кнопку внести значения. Мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru