2014-01-10 4 views
1

Я хочу написать sql-запрос, который всегда должен возвращать false.SQL всегда возвращает false

если я не пишу

select 1 from dual where 1=2; 

ничего не возвращается. как я могу использовать, где 1 = 2, который всегда возвращает «false».

+1

Избранная оператор не может возвращать логическое значение, как 'false'. Вы можете вернуть 1 для обозначения true и 0 для обозначения false, например. 'select case when 1 = 2 then 1 else 0 end flag from dual;' –

+1

Не видите причину этого. Вы не заполняете переменную PL/SQL? Возможно, вы можете описать, какую проблему вы пытаетесь решить –

ответ

3

Это потому, что там нет ничего, где 1 = 2.

select false from dual 

(Подставить значение, которое вы хотите, чтобы вернуться на ложь.)

1

Основываясь на plsql и plsqldeveloper тегов у меня есть полагать, что вы используете Oracle. Как оказалось, в продукте базы данных Oracle нет типа BOOLEAN, хотя тип BOOLEAN существует в PL/SQL. Когда я нахожу необходимость включения значения «истинного или ложного» в базу данных, я создам столбец CHAR (1) и ограничиваю его, чтобы он содержал только значения «T» или «F»; Таким образом, если «F» является приемлемым как «ложное» значение, которое вы могли бы сделать что-то вроде:

SELECT 'F' FROM DUAL 

Если вам не нравится «F» вы можете заменить любое значение, что вы хотели бы выбрать для " F».

Делитесь и наслаждайтесь.

0

Почему вы не просто использовать

Выберите 1

Смежные вопросы