powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возврат boolean-значения
29 сообщений из 29, показаны все 2 страниц
Возврат boolean-значения
    #39583330
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

В поле пишу выражение, который возвращает "Да" или "Нет".
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
    ...
    CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 'Да' Else 'Нет' END
FROM
    Таблица1 Т1
LEFT JOIN
    Таблица2 Т2
...

Запрос работает.

А надо возвращать True или False. Если вместо "Да" написать True и вместо "Нет" написать False, то пишет недопустимое имя столбца.

Как правильно написать?
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583332
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

sql пишет? у вас там вообще нет "имя столбца."
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583336
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkЕсли вместо "Да" написать True и вместо "Нет" написать False, то пишет недопустимое имя столбца.Замените 'За' на 'True', а 'Нет' на 'False'.
Типа BOOLEAN в MSSQL до сих пор нет.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583337
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKferzmikk,
sql пишет? у вас там вообще нет "имя столбца."
ferzmikk,
пятница да?
Код: sql
1.
2.
3.
4.
CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 'Да' Else 'Нет' END
CASE WHEN NOT(Т2.Поле1 IS NULL) THEN True Else False END -- конечно, ошибка, столбцов True/False не существует.
CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 'True' Else 'False' END
CONVERT( [TINYINT|BIT], CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 1 Else 0 END ) -- нужное оставить
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583340
iap,

справедливости ради нужно сказать, что его не только в MS SQL Server нет.... Изначально проблема в том, что его нет в ANSI-стандарте языка SQL. Следовательно, разработчики СУБД и не спешат включать его в состав своих диалектов SQL
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583358
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан Дамирович
Код: sql
1.
CONVERT( [TINYINT|BIT], CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 1 Else 0 END ) -- нужное оставить

Код: sql
1.
2.
3.
4.
CONVERT( TINYINT, CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 1 Else 0 END )
CONVERT( BIT, CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 1 Else 0 END )
CAST(CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 1 Else 0 END AS BIT)
CAST(CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 1 Else 0 END AS TINYINT)


Каждая запись возвращает не True/False, а 0/1.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583360
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

авторКаждая запись возвращает не True/False, а 0/1. это всё равно будут просто буквы, интерпретируйте 1/0
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583423
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баловство... Это клиент должен делать.

Код: sql
1.
CASE WHEN NOT(Т2.Поле1 IS NULL) THEN 'Да' Else 'Нет' END



А где алиас столбца? Код должен предсказуемо работать.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583522
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что в основных запросах, должно выводиться 1/0, а на последующих запросах выводить "True"/"False" как текст?
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583524
ferzmikk,

сразу можешь выводить словами 'false'/'true'. или даже 'ложь','клади' 'правда'. никто ж не запрещает... главное ты должен понимать - что возвращать ты будешь либо числовое поле (0/1), либо текстовое ('false'/'true'), но никак не поле с логическим типом boolean.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583527
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял. Спасибо!
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583635
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхferzmikk,

сразу можешь выводить словами 'false'/'true'. или даже 'ложь','клади' 'правда'. никто ж не запрещает... главное ты должен понимать - что возвращать ты будешь либо числовое поле (0/1), либо текстовое ('false'/'true'), но никак не поле с логическим типом boolean.

Ты, наверное не в курсе, все "логические типы" - суть 0/1.
Поэтому bit можно смело конвертить в bool на клиенте.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583679
aleks222

Ты, наверное не в курсе, но вся компьютерная математика - суть 0/1.
Пара-тройка не взлетевших проекта с трехзначной логикой - не всчёт
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583686
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхaleks222

Ты, наверное не в курсе, но вся компьютерная математика - суть 0/1.
Пара-тройка не взлетевших проекта с трехзначной логикой - не всчётSQL разве не взлетел?
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39583705
iap,

не стоит путать значение и его отсутствие... Если что, я имел ввиду такое
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584214
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхiap,

не стоит путать значение и его отсутствие... Если что, я имел ввиду такое
как раз sql и реализует трёхзначную логику, что бы вы не имели ввиду
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584271
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKДобрый Э - Эхiap,
не стоит путать значение и его отсутствие...
как раз sql и реализует трёхзначную логику, что бы вы не имели ввиду
Троичная логика != троичное представление данных, реализованное на двоичной логике.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584273
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан Дамирович,
Добрый Э - Эхтрехзначной логикой
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584277
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан ДамировичTaPaKпропущено...

как раз sql и реализует трёхзначную логику, что бы вы не имели ввиду
Троичная логика != троичное представление данных, реализованное на двоичной логике.


авторТы, наверное не в курсе, но вся компьютерная математика - суть 0/1.
Пара-тройка не взлетевших проекта с трехзначной логикой - не всчёт
логика, математика и неожиданно хранинение... ну да...
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584309
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKлогика, математика и неожиданно хранинение... ну да...
Неожиданно что?
Что в SQL не реализована троичная логика, а есть лишь неопределенное значение, которое к троичной логике имеет такое же отношение, как астрология к астрономии?
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584310
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан ДамировичTaPaKлогика, математика и неожиданно хранинение... ну да...
Неожиданно что?
Что в SQL не реализована троичная логика, а есть лишь неопределенное значение, которое к троичной логике имеет такое же отношение, как астрология к астрономии?А попроще? Что не устраивает в троичной логике SQL, никак не пойму.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584312
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан ДамировичTaPaKлогика, математика и неожиданно хранинение... ну да...
Неожиданно что?
Что в SQL не реализована троичная логика, а есть лишь неопределенное значение, которое к троичной логике имеет такое же отношение, как астрология к астрономии?
ну что тут скажешь, нет так нет
авторsystems in which there are three truth values indicating true, false and some indeterminate third value

https://en.wikipedia.org/wiki/Three-valued_logic
https://en.wikibooks.org/wiki/Structured_Query_Language/NULLs_and_the_Three_Valued_Logic
https://sqlserverfast.com/blog/hugo/2007/07/the-logic-of-three-valued-logic/
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584318
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе тоже могу потыкать ссылками.
Покажи мне лучше код SQL, где True AND NULL = True, а NULL AND True = NULL.
Тогда я вместе с тобой порадуюсь за реализацию троичной логики в SQL.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584363
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан ДамировичTrue AND NULL = True, а NULL AND True = NULL.

а с чего это A LogicAnd B должно быть неравно B LogicAnd A
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584367
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

возмущенец хочет сказать(в какой-то странной форме) что в предикате sql всё сведётся к true/false, что идёт в разрез с его пониманием троичной логики в чистом виде, но не отменяет присутсвия её в sql
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584369
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKчто в предикате sql всё сведётся к true/false
так нет же, в TSQL в предикате все сводится именно к троичной логике(true/false/unknown), но предикат срабатывает только когда результат вычисление true.
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584390
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexTaPaKчто в предикате sql всё сведётся к true/false
так нет же, в TSQL в предикате все сводится именно к троичной логике(true/false/unknown), но предикат срабатывает только когда результат вычисление true.
да, то я о чём-то не том думаю :)
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584413
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexTaPaKчто в предикате sql всё сведётся к true/false
так нет же, в TSQL в предикате все сводится именно к троичной логике(true/false/unknown), но предикат срабатывает только когда результат вычисление true.Это не так.
В CHECK CONSTRAINTе срабатывает NOT FALSE
...
Рейтинг: 0 / 0
Возврат boolean-значения
    #39584419
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapmsLexпропущено...

так нет же, в TSQL в предикате все сводится именно к троичной логике(true/false/unknown), но предикат срабатывает только когда результат вычисление true.Это не так.
В CHECK CONSTRAINTе срабатывает NOT FALSE
Я больше про select-ы писал, и про check как-то не подумал.
Да, в check результат сравнивается с false
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возврат boolean-значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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