我想将数据从MsSQL导入到运行自由格式查询的HBase,该查询在我要拆分的键上有别名。例如,我的查询是:
SELECT convert(varchar,Table1.Field1) + '_' + Table2.field1 AS 'xyz'
FROM Table1
INNER JOIN Table2
ON Table1.field3 = Table2.field4
WHERE $CONDITIONS
我想通过这个别名字段拆分工作单位。所以,在我的sqoop查询中,我有--split-by 'xyz'
选项。但是,这不起作用。我明白了:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException:
Ambiguous column name 'xyz'.
那么,如何使用这个别名选择字段使sqoop工作?
答案 0 :(得分:2)
这是SQL-Server的限制。它不允许在别名列上使用GROUP BY。
以下列方式重写查询有助于:
SELECT xyz FROM
(
SELECT convert(varchar,Table1.Field1) + '_' + Table2.field1 AS 'xyz'
FROM Table1
INNER JOIN Table2
ON Table1.field3 = Table2.field4
) as sub
WHERE $CONDITIONS