Sql 案例陈述支持
我可以参考我以前的案例陈述吗?我知道代码是错误的,但我想这样做:Sql 案例陈述支持,sql,Sql,我可以参考我以前的案例陈述吗?我知道代码是错误的,但我想这样做: SELECT Distinct(trafficSource.campaign) AS Campaign, Case When (SUBSTR(trafficSource.campaign,10,4)) = 'news' then 'eNEWS' When (SUBSTR(trafficSource.campaign,23,4)) = 'news' then 'eNEWS' Else Null End as **
SELECT
Distinct(trafficSource.campaign) AS Campaign,
Case
When (SUBSTR(trafficSource.campaign,10,4)) = 'news' then 'eNEWS'
When (SUBSTR(trafficSource.campaign,23,4)) = 'news' then 'eNEWS'
Else Null
End as **eNEWS_Flag**,
Case
When **eNEWS_Flag** = 'eNEWS' then (SUBSTR(trafficSource.campaign,21,2)) Lang_Flag,
From Blah Blah
WHERE eNEWS_Flag is NOT NULL
您必须重复这些条件或将此选择嵌套在另一个选择中。鉴于当前WHERE子句消除了建议的eNEWS_标志表达式返回NULL的所有行,您应该能够重构它,而无需使用任何大小写表达式
SELECT DISTINCT
trafficSource.campaign AS Campaign,
'eNEWS' as eNEWS_Flag,
SUBSTR(trafficSource.campaign,21,2)) AS Lang_Flag,
From Blah Blah
WHERE
SUBSTR(trafficSource.campaign,10,4) = 'news'
OR
SUBSTR(trafficSource.campaign,23,4) = 'news'
但在大多数情况下,不能在同一SELECT子句中引用表达式的列别名?SQL方言。也不在WHERE子句中,因为大多数引擎在计算SELECT子句之前先计算WHERE子句。用您正在使用的数据库标记您的问题。distinct不是一个函数。它始终适用于“选择”列表中的所有列。用括号括住其中一列不会改变任何东西,也没有用。不同的a、b、c与不同的a、b、c或不同的a、b、c相同