如何在 Superset SQL Lab 中禁用 SQL 包装器?

问题描述

是否可以在 Superset sql Lab 中禁用 sql 包装器? 因此,我的 sql Server 语法查询不起作用。 例如我想使用 #temp 表,但 inner_qry 破坏了它。

sql,运行良好

SELECT
GTD = GETDATE()
INTO #tmp 

SELECT
*
FROM #tmp

原始 sql,失败

SELECT TOP 1000 * 
FROM (SELECT
GTD = GETDATE()
INTO #tmp 

SELECT
*
FROM #tmp) AS inner_qry

超集版本 0.37.2。

提前致谢。

解决方法

目前这是不可能的。

您能否重写查询以使用 WITH 而不是临时表?那么它应该可以工作:

WITH tmp AS (SELECT GTD = GETDATE())
SELECT * FROM tmp

我以前从未使用过 SQL Server,但我在 Postgres 中测试了一个简单的查询,它在包装后也能工作:

WITH tmptable AS (SELECT * FROM events)
SELECT * FROM tmptable

变成:

SELECT ts AS ts,topic AS topic,value AS value
FROM
  (WITH tmptable AS
     (SELECT *
      FROM events) SELECT *
   FROM tmptable) AS expr_qry
LIMIT 1000

哪个有效。