Google BigQuery CASE function

case, google-bigquery, sql

Solution

2013 update: BigQuery supports CASE:

SELECT CASE WHEN x=1 THEN 'one' WHEN x=2 THEN 'two' ELSE 'more' END 
FROM (SELECT 1 AS x) 

'one'

Problem

I'm trying to run a query like what's answered here, SQL Selecting multiple sums? ``` SELECT SUM(CASE WHEN order_date >= '01/01/09' THEN quantity ELSE 0 END) AS items_sold_since_date, SUM(quantity) AS items_sold_total, product_ID FROM Sales GROUP BY product_ID ``` But if I try that, I get the error message ``` "message": "Unrecognized function CASE". ``` If I try a much more simple (from an sql tutorial), ``` SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; ``` I then get ``` "message": "searched case expression not supported at: 1.8 - 1.65". ``` I'm going to take a wild stab in the dark and assume that the SQL CASE function is overall just not supported on BigQuery, but really hope that I'm wrong because it makes a huge bit of difference based on the report queries I want to run.

Original source

Related problems