Home  >  Article  >  Database  >  SSAS命名计算的SQL语法需遵循"源"数据提供者的要求

SSAS命名计算的SQL语法需遵循"源"数据提供者的要求

WBOY
WBOYOriginal
2016-06-07 15:08:151265browse

在SSAS 数据 源视图中, 命名 计算 是一个表示为 计算 列的 SQL 表达式。使用 命名 计算 ,可以扩展 数据 源视图中现有表或视图的关系架构,而无需修改基础 数据 源中的表或视图。 有些初学者看到 命名 计算 一般是在SSAS的DEV Studio中定义的,很容易误解

在SSAS数据源视图中,命名计算是一个表示为计算列的 SQL 表达式。使用命名计算,可以扩展数据源视图中现有表或视图的关系架构,而无需修改基础数据源中的表或视图。

有些初学者看到命名计算一般是在SSAS的DEV Studio中定义的,很容易误解命名计算的SQL语法应符合SSAS(也就是sql server)支持的范围。而实际上并非如此,这一点如果了解数据源视图的性质及作用后即可熟悉。

同时,也可以从SSAS文档中隐晦的获知:

定义完命名计算之后,便会将命名计算中的表达式发送到数据源的提供程序,然后将表达式作为以下 SQL 语句进行验证,在该语句中,<expression></expression> 包含定义命名计算的表达式。

SELECT 
   
.*, Expression > AS FROM
AS

列的数据类型由表达式返回的标量值的数据类型确定。 如果提供程序没有在表达式中找到任何错误,则将该列添加到表内。

------引自《SSAS联机文档》

请留意上述内容中红色字体的内容,可发现命名计算语法需要符合源数据提供者的,因为命名计算是被提交到源数据提供者处理并执行的。

比如:如果源数据提供者为Access,则定义一个包含Case语句的命名计算是错误的,如果要完成对等的逻辑,必须将Case语句转换为Access支持的判断语句,如IIF等。

 

 

 

 


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn