Если заявление Big Query - PullRequest
       3

Если заявление Big Query

0 голосов
/ 27 марта 2020

Я довольно новый пользователь большого запроса с базовыми навыками c SQL. Я хотел бы создать запрос, который использует условный оператор IF для добавления нового значения в одно из моих полей

Вот данные, которые у меня есть

    YEAR  |  MONTH   | NEW YEAR
----------+----------+-------------
     2018 | April    | 
     2019 | June     | 
     2020 | May      | 

Я думал о следующий запрос:

Select
IF (YEAR ="2018" AND MONTH=April) THEN (NEW YEAR =2019),
IF (YEAR ="2019" AND MONTH=June) THEN (NEW YEAR =2020),
IF (YEAR ="2020" AND MONTH=May) THEN (NEW YEAR =2021)
FROM 'database'
WHERE source ='name source'

Я пытаюсь выяснить, но невозможно установить правильный синтаксис и логи c

Большое спасибо за вашу помощь Очень признателен!

Ответы [ 2 ]

2 голосов
/ 27 марта 2020

Используйте выражение case:

SELECT (case when YEAR = '2018' and month = 'April' then 2019
             when YEAR = '2019' and month = 'June' then 2020
             when YEAR = '2020' and month = 'May' then 2021
        end) as NEW YEAR
FROM `database`
WHERE source = 'name source'
1 голос
/ 27 марта 2020

Я чувствую, что вы забыли упомянуть, какие именно логики c вы хотите реализовать для своего нового столбца - но, по крайней мере, ниже устраняет проблему с помощью оператора IF

#standardSQL
SELECT 
  CASE (year, month) 
    WHEN ('2018', 'April') THEN 2019
    WHEN ('2019', 'June') THEN 2020
    WHEN ('2020', 'May') THEN 2021   
  END AS new_year
FROM 'database'
WHERE source ='name source'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...