标签: sql-data-warehouse

Azure数据仓库中的表变量

在SQL Server数据库中,可以使用如下表变量:

declare @table as table (a int)
Run Code Online (Sandbox Code Playgroud)

在Azure数据仓库中,会引发错误.

在行处解析错误:1,列:19:'table'附近的语法不正确

在Azure数据仓库中,您可以使用临时表:

create table #table (a int)
Run Code Online (Sandbox Code Playgroud)

但不是内部功能.

消息2772,级别16,状态1,行6无法从函数内访问临时表.

微软的这份文件说,

◦必须分两步声明(而不是内联):◾CREATETYPEmy_type AS TABLE ...; ,然后◾DECLARE@ mytablevariable my_type;.

但是,当我尝试这个:

create type t as table (a int);
drop type t;
Run Code Online (Sandbox Code Playgroud)

我明白了:

消息103010,级别16,状态1,行1行中的解析错误:1,列:8:"类型"附近的语法不正确.

我的目标是在Azure数据仓库中使用一个使用临时表的函数.它可以实现吗?

编辑从这里开始

请注意,我不是在寻找其他方法来创建一个特定的功能.我实际上已经这样做了并继续前进.我是一名资深程序员,但是Azure数据仓库的新手.我想知道是否可以在Azure数据仓库功能中加入一些临时表的概念.

sql sql-server sql-data-warehouse

9
推荐指数
1
解决办法
1615
查看次数

在 SELECT 语句中动态设置变量

我有一个包含多个 SAP 数据表和一个 SQL 语句的 SQL 数据库,如下所示:

SELECT DISTINCT
AFKO.PLNBEZ AS 'Material',
MAKT.MAKTX AS 'Material Number', 
AFKO.AUFNR AS 'Order', 
AFVC.VORNR AS 'Operation Number',
CRTX.KTEXT AS 'Operation Text', 
AFVV.VGW01 AS 'Estimated Hours 1',
AFVV.VGW02 AS 'Estimated Hours 2',
AFVV.VGW03 AS 'Estimated Hours 3',
AFVV.VGW04 AS 'Estimated Hours 4',
AFVV.VGW05 AS 'Estimated Hours 5',
AFVV.VGW06 AS 'Estimated Hours 6',
AFVV.ISM01 AS 'Actual Hours 1',
AFVV.ISM02 AS 'Actual Hours 2',
AFVV.ISM03 AS 'Actual Hours 3',
AFVV.ISM04 AS 'Actual Hours 4',
AFVV.ISM05 AS 'Actual …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server sap sql-data-warehouse

5
推荐指数
0
解决办法
279
查看次数

Azure Data Lake - HDInsight与数据仓库

我正处于使用Azure数据仓库中的外部表从Azure Data Lake读取的位置.

这使我们能够使用众所周知的SQL从数据湖中读取数据.

但是,另一种选择是使用Data Lake Analytics或HDInsight的某些变体.

表现明智,我没有看到太多差异.我假设数据仓库在后台运行某种形式的分布式查询,转换为U-SQL(?),那么我们为什么要使用稍微不同的U-SQL语法的Data Lake Analytics?

由于SQL中也提供了python脚本,我觉得我缺少Data Lake Analytics的主要目的,除了成本(按批次工作付费,而不是数据库的恒定运行时间).

azure azure-data-lake u-sql sql-data-warehouse

2
推荐指数
1
解决办法
1568
查看次数

在查询特定列的外部表时,列名称也显示为一行

我在azure data lake store中有一个文件.我正在使用polybase将数据从数据湖存储移动到数据仓库.我按照这里提到的所有步骤进行了操作.

假设我创建了外部表作为External_Emp,它有3列:ID,Name,Dept.

当我运行以下查询时:

select * from External_Emp;
Run Code Online (Sandbox Code Playgroud)

然后,它向我显示所有正确的记录.但是当我选择特定的列/列时,它会在一行中显示列名.例如,如果我运行以下查询:

select Name from External_Emp;
Run Code Online (Sandbox Code Playgroud)

然后输出是:

Name
-----
Name
1
2
3
Run Code Online (Sandbox Code Playgroud)

而输出应该是:

Name
------
1
2
3
Run Code Online (Sandbox Code Playgroud)

同样,当我运行查询时:

select ID, Name from External_Emp;
Run Code Online (Sandbox Code Playgroud)

然后它显示以下输出:

ID | Name
---------
ID | Name
1  | abc
2  | xyz
3  | pqr
Run Code Online (Sandbox Code Playgroud)

而输出应该是:

ID | Name
--------
1  | abc
2  | pqr
3  | xyz
Run Code Online (Sandbox Code Playgroud)

为什么在单独的行中显示列名?那是一个错误吗?

我多次检查azure数据湖中csv文件中的数据.它没有重复的列名.谢谢.

azure azure-sqldw azure-data-lake polybase sql-data-warehouse

2
推荐指数
1
解决办法
76
查看次数