Глупый вопрос:Несколько IF в той же колонке
Мне нужно сгруппировать в одном столбце разные операторы if. Как я могу сделать?
если (строка = 'AAA', 'A', 'другой'), если (строка = 'BBB', 'B', 'другой') AS COLUMN 1
Спасибо!
Глупый вопрос:Несколько IF в той же колонке
Мне нужно сгруппировать в одном столбце разные операторы if. Как я могу сделать?
если (строка = 'AAA', 'A', 'другой'), если (строка = 'BBB', 'B', 'другой') AS COLUMN 1
Спасибо!
Извлекает Simulating a Pivot Table
участка от Query Reference
использования условных операторов для организации результатов запроса подвыборки в строки и столбцы. В приведенном ниже примере результаты поиска наиболее пересмотренных статей в Википедии, начинающиеся со значения «Google», организованы в столбцы, где подсчет ревизий отображается, если они соответствуют различным критериям.
SELECT
page_title,
/* Populate these columns as True or False, */
/* depending on the condition */
IF (page_title CONTAINS 'search',
INTEGER(total), 0) AS search,
IF (page_title CONTAINS 'Earth' OR
page_title CONTAINS 'Maps', INTEGER(total), 0) AS geo,
FROM
/* Subselect to return top revised Wikipedia articles */
/* containing 'Google', followed by additional text. */
(SELECT
TOP (title, 5) as page_title,
COUNT (*) as total
FROM
[publicdata:samples.wikipedia]
WHERE
REGEXP_MATCH (title, r'^Google.+') AND wp_namespace = 0
);
Возвращает:
+---------------+--------+------+
| page_title | search | geo |
+---------------+--------+------+
| Google search | 4261 | 0 |
| Google Earth | 0 | 3874 |
| Google Chrome | 0 | 0 |
| Google Maps | 0 | 2617 |
| Google bomb | 0 | 0 |
+---------------+--------+------+
использования сазе
Select
Case
When string="AAA" then "A_String"
When string="BBB" then "B_String"
When String in ("CCC","DDD") then "C_OR_D_String"
Else "Unknow_String"
End AS String_Class
From My_Table
Надеется, что это помогает