2015-10-22 2 views
0

Пример таблицы будет:Как вернуть false, если ни одна строка не имеет определенных значений, используя PostgreSQL или node.js?

P Q 
t f 
f t 
f f 

есть способ в SQL, чтобы вернуться ложным, если запрос для t t, но если вернуть истинный запрашивая t f, f t или ff, или это должно быть сделано с помощью Node.js a select, а затем a if else, если выбор вернул null?

Каков оптимальный способ?

ответ

0

Результат логического выражения является ... логическое значение:


CREATE table pq 
     (p boolean NOT NULL 
     , q boolean NOT NULL 
     ); 
INSERT INTO pq (p , q) VALUES 
(False, False), (False, True), (True, False), (True, True) 
     ; 

SELECT p, q 
     , (p <> true OR q <> true) as nand 
FROM pq 
     ; 

Результат:

CREATE TABLE 
INSERT 0 4 
p | q | nand 
---+---+------ 
f | f | t 
f | t | t 
t | f | t 
t | t | f 
(4 rows) 
0

Вы можете попробовать так:

SELECT 
    CASE P WHEN 't' THEN TRUE ELSE FALSE END, 
    CASE Q WHEN 't' THEN TRUE ELSE FALSE END 
FROM Your_Table 

или использовать 0, 1 insteaf:

SELECT 
    CASE P WHEN 't' THEN 1 ELSE 0 END, 
    CASE Q WHEN 't' THEN 1 ELSE 0 END 
FROM Your_Table 
Смежные вопросы