任何人都可以帮助处理案例陈述吗?
以下CASE STATEMENT是我的SQL管理中的结果。
select
Column1 = case when Column1 = 'true' then 'Y'
ELSE 'N'
END ,
Column2 = case when Column1 = 'true' then 'Y'
ELSE 'N'
END ,
SHARED = case when Column1='true' AND Column1='true' THEN 'SHARED' ELSE 'NOTSHARED'
END
FROM Table
结果:
Column1 Column2 SHARED
Y N NOTSHARED
N N NOTSHARED
Y N NOTSHARED
N N NOTSHARED
N N NOTSHARED
Y N NOTSHARED
Y N NOTSHARED
Y N NOTSHARED
N N NOTSHARED
Y N NOTSHARED
N N NOTSHARED
Y N NOTSHARED
Y N NOTSHARED
N N NOTSHARED
我必须使用上面的语句创建一个新的命名计算。怎么做?
当我尝试这个时,它显示错误:
Deferred prepare could not be completed.
Statement(s) could not be prepared.
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
答案 0 :(得分:0)
您应该将查询放到子查询中,然后您可以在select语句中使用它,如下所示
select column1, column2,
SHARED = case when Column1='true' AND Column1='true'
THEN 'SHARED'
ELSE 'NOTSHARED'
END
from ( select
Column1 = case when Column1 = 'true' then 'Y'
ELSE 'N'
END ,
Column2 = case when Column1 = 'true' then 'Y'
ELSE 'N'
END
FROM Table
) Tab
答案 1 :(得分:0)
如果您想在Analysis Services多维数据集的数据源视图中的命名计算中执行此操作,正如我从您的问题中假设的那样,那么每个子句都像
case when Column1 = 'true' then 'Y' ELSE 'N' END
必须是一个单独的命名计算,您将其放入 Expression 字段,并将名称放入对话框的列名称字段中。