Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BigQuerySQL:如何检查大小写表达式中的双重条件并指定单个值?_Sql_Google Bigquery_Conditional Statements_Case - Fatal编程技术网

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您有机会尝试吗?如果你不注意答案,为什么要回答你的新问题?请考虑检查和行动的答案-像投票和接受,如果相关的!!!