sql - 创建在 Azure Databricks 中传递日期以进行查询的小部件

标签 sql azure parameters widget azure-databricks

我需要在 Azure Databricks 中创建一个小部件,以允许我将日期传递给查询。

这段代码的 MSSQL 版本是(注意我已经大大简化了问题,这是更大查询的一部分,我试图避免自连接):

DECLARE @MAXstartdate DATE = (SELECT MAX(startdate) FROM table
SELECT *
FROM table
WHERE startdate = @MAXstartdate

我已经尝试过:

SET mbr.MAX = (SELECT MAX(startdate) FROM table);

CREATE WIDGET mbr.MAX DEFAULT SELECT MAX(startdate) FROM table

但是 Azure 在这两个方面都会出错。

最佳答案

我尝试使用一些示例数据在我的环境中复制该问题:

create table sampletable(Id int , startdate Date)
insert into sampletable(id,startdate) values(1, '2023-04-04'),(2,'2023-04-23'),(3,'2023-04-12')

enter image description here

使用您的代码:

DECLARE @MAXstartdate DATE = (SELECT MAX(startdate) FROM sampletable
SELECT *
FROM sampletable
WHERE startdate = @MAXstartdate

我收到以下错误:

enter image description here

我通过以下代码解决了该问题:

SELECT *FROM sampletable
WHERE startdate = (SELECT MAX(startdate) FROM sampletable)

enter image description here

我使用以下代码使用上述查询的结果创建了一个小部件:

CREATE WIDGET DROPDOWN maxdate DEFAULT "2023-04-23"  CHOICES SELECT  MAX(startdate) FROM sampletable ;

enter image description here

我能够使用以下代码访问小部件值:

SELECT * 
FROM sampletable
WHERE startdate = getArgument('maxdate')

enter image description here

关于sql - 创建在 Azure Databricks 中传递日期以进行查询的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75931960/

相关文章:

sql - 在 SQL Server 2008 中跨列返回最大值

android - 如何从 Flutter App 连接 Ms SQL?

MySQL - 如何查询树?

angularjs - 响应中 'Access-Control-Allow-Credentials' header 的值为 '',当请求的凭据模式为 'true' 时,该值必须为 'include'

带参数的c#设置项目

c# - 如何防止用户生成的 SQL 查询中的 SQL 注入(inject)

Azure Boards,如何使用每个工作项类型?

azure - 将 ADFS 与 Azure AD 集成后,对加入 Windows 10 的 Azure AD 计算机有何影响?

c++ - 自动模板参数可以传什么有限制吗?

c# - 如果 "Error CS1628: Cannot use in ref or out parameter inside an anonymous method, lambda or query expression"如何在线程中使用 ref 参数?