Я хочу написать sql-запрос, который всегда должен возвращать false.SQL всегда возвращает false
если я не пишу
select 1 from dual where 1=2;
ничего не возвращается. как я могу использовать, где 1 = 2, который всегда возвращает «false».
Я хочу написать sql-запрос, который всегда должен возвращать false.SQL всегда возвращает false
если я не пишу
select 1 from dual where 1=2;
ничего не возвращается. как я могу использовать, где 1 = 2, который всегда возвращает «false».
SELECT CASE WHEN 1=2 THEN 1 ELSE 0 END FROM DUAL
Это потому, что там нет ничего, где 1 = 2.
select false from dual
(Подставить значение, которое вы хотите, чтобы вернуться на ложь.)
Основываясь на plsql
и plsqldeveloper
тегов у меня есть полагать, что вы используете Oracle. Как оказалось, в продукте базы данных Oracle нет типа BOOLEAN, хотя тип BOOLEAN существует в PL/SQL. Когда я нахожу необходимость включения значения «истинного или ложного» в базу данных, я создам столбец CHAR (1) и ограничиваю его, чтобы он содержал только значения «T» или «F»; Таким образом, если «F» является приемлемым как «ложное» значение, которое вы могли бы сделать что-то вроде:
SELECT 'F' FROM DUAL
Если вам не нравится «F» вы можете заменить любое значение, что вы хотели бы выбрать для " F».
Делитесь и наслаждайтесь.
Почему вы не просто использовать
Выберите 1
Избранная оператор не может возвращать логическое значение, как 'false'. Вы можете вернуть 1 для обозначения true и 0 для обозначения false, например. 'select case when 1 = 2 then 1 else 0 end flag from dual;' –
Не видите причину этого. Вы не заполняете переменную PL/SQL? Возможно, вы можете описать, какую проблему вы пытаетесь решить –