2015-02-17 5 views
1

Глупый вопрос:Несколько IF в той же колонке

Мне нужно сгруппировать в одном столбце разные операторы if. Как я могу сделать?

если (строка = 'AAA', 'A', 'другой'), если (строка = 'BBB', 'B', 'другой') AS COLUMN 1

Спасибо!

ответ

2

Извлекает 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 | 
+---------------+--------+------+ 
6

использования сазе

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 

Надеется, что это помогает

Смежные вопросы