Несколько условий в предложении where, есть ли способ просто сделать это в BQ - PullRequest
0 голосов
/ 07 июня 2018

Я просто проверяю, получил ли какой-либо студент 35 баллов по любому предмету.Есть ли способ упростить это, например, где (phy, che, math, cs, eng) в (35)?

with temp_table as(
select "studentA" name,36 as phy, 67 as che,75 math,65 cs,64 eng union all
select "studentB" name,44, 57, 37, 73, 57 union all
select "studentC" name,94, 87, 48, 72, 63
)
select * from temp_table where phy=35 or che=35 or math=35 or cs=35 or eng=35

1 Ответ

0 голосов
/ 07 июня 2018
with temp_table as(
select "studentA" name,36 as phy, 67 as che,75 math,65 cs,64 eng union all
select "studentB" name,44, 57, 37, 73, 57 union all
select "studentC" name,94, 87, 48, 72, 63
)
select * from temp_table where 35 IN (phy, che, math, cs, eng)

(Учтите, что если какой-либо из столбцов равен NULL, то сравнение IN вернет NULL)

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