BigQuerySQL:如何检查大小写表达式中的双重条件并指定单个值?
输入数据:BigQuerySQL:如何检查大小写表达式中的双重条件并指定单个值?,sql,google-bigquery,conditional-statements,case,Sql,Google Bigquery,Conditional Statements,Case,输入数据: Store Sales 11 2.5 12 null 13 0.0 14 5.2 Store Sales Ignore 11 2.5 12 null Y 13 0.0 Y 14 5.2 SELECT *, CASE WHEN t.Sales IS NULL AND t.Sales <> 0 THEN 'Y' ELSE '' EN
Store Sales
11 2.5
12 null
13 0.0
14 5.2
Store Sales Ignore
11 2.5
12 null Y
13 0.0 Y
14 5.2
SELECT
*,
CASE WHEN t.Sales IS NULL AND t.Sales <> 0 THEN 'Y' ELSE '' END Ignore,
FROM TABLE1 t
问题陈述:
根据上面提到的数据,必须检查销售值是否为null和0,在名为Ignore的新列中指定Y,否则留空
预期输出:
Store Sales
11 2.5
12 null
13 0.0
14 5.2
Store Sales Ignore
11 2.5
12 null Y
13 0.0 Y
14 5.2
SELECT
*,
CASE WHEN t.Sales IS NULL AND t.Sales <> 0 THEN 'Y' ELSE '' END Ignore,
FROM TABLE1 t
尝试了SQL查询:
Store Sales
11 2.5
12 null
13 0.0
14 5.2
Store Sales Ignore
11 2.5
12 null Y
13 0.0 Y
14 5.2
SELECT
*,
CASE WHEN t.Sales IS NULL AND t.Sales <> 0 THEN 'Y' ELSE '' END Ignore,
FROM TABLE1 t
选择
*,
当t.Sales为NULL且t.Sales为0时,则“Y”ELSE“”结束忽略,
来自表1 t
执行此操作时,“忽略”列的所有值都为空。我不知道我会错在哪里。
我需要帮助。提前谢谢 由于处理
NULL
s的方式,您也可以将其写成:
SELECT *,
CASE WHEN t.Sales IS NULL OR t.Sales = 0.0
THEN 'Y'
END as Ignored
FROM TABLE1 t
select t.*,
(case when t.sales <> 0.0 then null else 'Y' end) as ignore
from table1 t;
下面是BigQuery标准SQL
#standardSQL
select *,
if(ifnull(Sales, 0) = 0, 'Y', '') as `Ignore`
from `project.dataset.table`
如果要应用于问题中的样本数据,则输出为
如果您的列只能接受NULL和数字,那么IS NULL就足够了,否则您需要修剪(销售)IS NULL您有机会尝试吗?如果你不注意答案,为什么要回答你的新问题?请考虑检查和行动的答案-像投票和接受,如果相关的!!!