【问题标题】:How to declare Array variable in Azure Data Warehouse?如何在 Azure 数据仓库中声明数组变量?
【发布时间】:2020-08-08 17:16:36
【问题描述】:

我有一个我在类似这样的 sql 查询中使用的字符串列表:

select count(*) from sometable where somefield in ('val1','val2',...'valn')

我在单个存储过程中的多个查询中使用此模式。我想重用存储的过程,定期更改数组中的值。使用普通 SQL 数据库,您可以声明表变量类型,但 SQL 数据仓库不支持这种类型。您可以使用临时表,但这些和表变量在值更改时需要更多编辑(需要插入语句或联合来填充表)。如何声明数组变量?

【问题讨论】:

  • 我投票结束这个问题,因为它是来自 OP 的问题/答案对,没有演示如何创建数组变量,并重新审视如何为 @ 参数化列表的旧基础987654322@.

标签: tsql azure-sql-database azure-sql-data-warehouse


【解决方案1】:

创建一个 varchar 变量并在 select 语句中使用 STRING_SPLIT 函数:

DECLARE @ids varchar(8000)
set @ids = 'Val1,Val2,...ValN'
select count(*) from sometable 
where somefield in (SELECT value FROM STRING_SPLIT(@ids, ','))

虽然这可行,但我不确定它的扩展性如何;出于性能原因,您可以回退到使用临时表 - 然后使用 VSCode 编辑插入语句(Ctrl+Shift+L 是您的朋友)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2016-06-30
    • 2017-01-04
    相关资源
    最近更新 更多