powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB3 и BOOLEAN
25 сообщений из 62, страница 2 из 3
FB3 и BOOLEAN
    #38816221
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, а можешь проверить UNKNOWN IS NULL, UNKNOWN = NULL, UNKNOWN IS DISTICNT FROM NULL
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816225
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unkonwn применяется только к логическим условиям. Вот на таком примере думаю понятней будет

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select
  (rdb$relation_id = rdb$linger) is unknown as f1
from rdb$database

f1
=====
<true>

select
  (rdb$relation_id = rdb$linger) is null as f1
from rdb$database

f1
=====
<true>



В первом случае я подразумеваю, что значение сравнения неизвестно. Второй случай тоже самое, но уже не столь информативно
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816227
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold,

это я тебе без проверки скажу

true, false, false

для UNKNOWN IS NOT DISTICNT FROM NULL будет true
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816229
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldВот у майкрософта по другому сделано. Они не парились особо и сделали такой тип данных как BIT, и всё.А они вообще редко когда парятся :)
BIT - это совершенно не BOOLEAN. Это вообще ужас с SQL точки зрения, его наверняка C-шники протянули и, подозреваю, что не в MSSQL, а ещё в древний Sybase :)
Запиши в него NULL, например.

PS Если тебя смущает UNKNOWN как литерал - просто забудь, что он есть. На практике ничего не изменится )
PPS А пришёл UNKNOWN из троичной логики (TRUE, FALSE, UNKNOWN)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816235
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЗапиши в него NULL, например.Тут я соврал, похоже.
Но не в остальном :)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816239
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

в стандарте вроде были битовые строки BIT и BIT VARYING, но в SQL:2003 их исключили. Хотя это наверное не то что тип bit у MS
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816240
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldК тому же теперь пользователю надо соображать что чему равно UNKNOWN = NULL, UNKNOWN <> NULL
NULL (пусто) - это отсутствие значения. А UNKNOWN (неизвестно) - результат операции, если в ней участвует NULL.
Например, A + NULL = ... ? Правильно, UNKNOWN!
Мог бы и тут почитать.
Другое дело, зачем нужен литерал UNKNOWN, если он практически никогда не нужен.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816247
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold> Так надо бывает в базе пколупаться

Юзерам?! Для себя-то SSMS можешь на флешке таскать или по удалёнке.

Gold> Рустам, видишь

Вижу. Согласен. Хреново. Если того не требует стандарт разве что.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816249
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима тоже зажигает, молодец
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816256
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, да я и так прекрасно понимаю что должно быть. Это так, проверка что в сервере правильно сделано.

hvlad, привет :-)
Ну про bit - я в него постоянно нулы пишу. Лет 7 наверное. От тебя узнал что с этим проблемы могут быть.

авторPS Если тебя смущает UNKNOWN как литерал - просто забудь, что он есть. На практике ничего не изменится )
PPS А пришёл UNKNOWN из троичной логики (TRUE, FALSE, UNKNOWN)

Я то, слава богу, понимаю как он работает. Много чего в жизни я не понимаю, но это понимаю вроде :-)

Просто этот UNKNOWN будет постоянно сбивать с толку новичков, вот увидишь.

Я бы мог понять, наверное, если бы вы сделали и написали так: вводится новое ключевое слово UNKNOWN, которе является синонимом NULL.

как лично ты считаешь, выражение типа SELECT CAST(NULL AS INT) IS UNKNOWN логичное или нет? Я не вижу в нём ничего эдакого.

А такое выражение SELECT COALESCE(@Parameter AS UNKNOWN) = TRUE будет работать?

Вы же, объявляя какое-то слово литералом, наделяете его определёнными свойствами, а получается на практике что не совсем ото так, тот же пример с SELECT UNKNOWN возвращает NULL

А ещё вопрос что вернёт SELECT CAST(TRUE AS VARCHAR(10)), CAST(UNKNOWN AS VARCHAR(10))

Новички сойдут с ума ;-)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816262
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvДругое дело, зачем нужен литерал UNKNOWN, если он практически никогда не нужен

Вот! Он запутывает!!!
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816281
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldВот! Он запутывает!!!
Он повышает порог вхождения и тем самым приносит пользу сообществу в целом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816288
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldНу про bit - я в него постоянно нулы пишу. Лет 7 наверное. От тебя узнал что с этим проблемы могут быть.Ну а я за 15 лет ни разу не нашёл причин его использовать.
За нуллы я уже сказал, что ошибся.

GoldНовички сойдут с ума ;-)Сойдут. Но по другим поводам ;)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816298
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу а я за 15 лет ни разу не нашёл причин его использовать.
За нуллы я уже сказал, что ошибся.


А на чём же ты к нему обращаешься? Видатьна чём-то раритетном. Я вот на EntityFramework с ним работаю и прекрасно он отображается на boolean. Что-то у тебя там совсем раритетное, наверное ;-)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816313
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldSELECT COALESCE(@Parameter AS UNKNOWN) = TRUE
ну это фигня полная. Здесь ошибка будет. Видимо ты на MSSQL засиделся, здесь параметры не так пишутся.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT
    CAST(TRUE AS VARCHAR(10)) AS F1,
    CAST(UNKNOWN AS VARCHAR(10)) AS F2
FROM
    RDB$DATABASE

F1          F2
=============
TRUE      <null>



Здесь как раз всё логично
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816322
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамДима тоже зажигает, молодец

я? тогда давайте ткнем пальцем в того, у кого в коде используется слово UNKNOWN. Я не спорю с кошерностью этого литерала, вообще, ибо в трехзначной логике состояния все же true/false/unknown, а не true/false/null.

https://ru.wikipedia.org/wiki/UNKNOWN_(логическое_значение)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816326
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> Он повышает порог вхождения



Злой ты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816327
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, написал неправильно

Надо так: SELECT COALESCE(@Parameter, UNKNOWN)

Глубокий смысл этого заключается в том, что тип параметра не известен, а COALESCE() помогает его определить по второму аргументу. Уже не помню по давности лет где это было нужно, но помню что было очень нужно.

Здесь, как раз, получается так, что UNKNOWN имеет смысл и тип данных для COALESCE(@Parameter, UNKNOWN) lолжен быть BOOLEAN, а для COALESCE(@Parameter, NULL) не известен (или вообще такое не должно компиллироваться ввиду абсурдности).
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816330
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К стати, вот это вот FROM RDB$DATABASE я смотрю так и здравствует поныне, упрощённый синтаксис типа SELECT 1, 'abc' так и не разрешили :-(
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816331
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold> Здесь, как раз, получается так

В твох примерах с коалеской нкакх проблем нет -
в первом должен быть булн, второй не скомпилится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816334
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold> упрощённый синтаксис

Кому он нафиг нужен? Обсуждалось же мильон раз.
И инсерты множественные обсуждались (не знаю,
добавили в тройку или нет). Ты тут на всё скопом
решил пожаловаться что ли? :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816337
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, повторю, дело не в том, что оно вернёт в качестве данных, а в том, что оно вернёт в качестве типа столбца.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816346
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ инсерты множественные обсуждались (не знаю,
добавили в тройку или нет). Ты тут на всё скопом
решил пожаловаться что ли? :)

Ну я же говорю что всё время хочу перейти. Хочется чтобы всё было прекрасно :-) ножественные инсёрты тоже вещь. Раз пользовался в жизни, зато как они не облегчили всё, ммммм :-)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816352
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldК стати, вот это вот FROM RDB$DATABASE я смотрю так и здравствует поныне, упрощённый синтаксис типа SELECT 1, 'abc' так и не разрешили :-(

это не стандартно. Обсуждалось пришли к выводу что надо как то так CORE-3880

Код: sql
1.
2.
SELECT * 
FROM (VALUES (1, 3), (1, 5)) AS T(A, B) 



или даже так

Код: sql
1.
VALUES (1, 'abc') AS (A, B)
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816359
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, это тоже вкусные плюшки. Но написать что-то типа

авторSELECT NULL AS Id, '(Not selected)' AS NAME
UNION ALL
SELECT Id, Name FROM MyTable

Это очень просто, прозрачно и удобно. Да, можно жить без этого.
Интересно, к стати, когда пишется что-то типа SELECT 1 FROM RDB$DATABASE, то происходят ли в движке какие-то лишние действия относительно RDB$DATABASE, которых можно было бы избежать?
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB3 и BOOLEAN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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