Как сравнить 2 поля в таблице и сделать поле статуса - PullRequest
1 голос
/ 05 апреля 2019

Как мне написать запрос для сравнения 2 полей и создания статуса?

таблица выглядит следующим образом

Я попробовал этот код:

select a, b , if ( a=b,'true','false') as status from x

Я хочу получить результат как

a | b | status 
A | A | True
A | B | False
A | C | False
B | B | true

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

С CASE :

select
 a, b,
 case when trim(a) = trim(b) then 'True' else 'False' end status
from x

Также имеется функция IF () :

select
 a, b,
 if(trim(a) = trim(b), 'True', 'False') status
from x
0 голосов
/ 05 апреля 2019

Попробуйте использовать case ,

select f1,f2,case when(f1=f2) then 'True' else 'False' end as 'Status' from t1

DEMO

CASE Statement

Оператор CASE проходит через условия и возвращает значение при выполнении первого условия (например, оператор IF-THEN-ELSE).Таким образом, если условие выполнено, оно прекратит чтение и вернет результат.

Если условия не выполняются, он вернет значение в предложении ELSE.

Если ELSE не существуетчасть и условия не выполняются, возвращается NULL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...