【问题标题】:How can I SELECT based upon a user-input variable?如何根据用户输入变量进行选择?
【发布时间】:2019-12-24 18:35:18
【问题描述】:

我正在尝试构建一个SELECT 语句,允许用户控制结果是合并到一行还是按变量拆分。本质上,我希望用户能够通过使用带有两个选项的下拉菜单来动态添加或删除一个或多个字段。

逻辑很简单,但我不知道如何解析它。我认为“拆分”选项应该类似于以下内容:

SELECT CASE WHEN $userchoice='split' THEN field1, field2, approx_distinct(stuff)

相对于组合选项的类似内容:

SELECT CASE WHEN $userchoice='combined' THEN approx_distinct(stuff)

我失败了:

SELECT
CASE
    WHEN ${splitorconsolidate=consolidate|split}='split'
        THEN    field1, field2, approx_distinct(stuff) as total_stuff
    ELSE approx_distinct(stuff) as total_stuff
END;

收到错误mismatched input ','. Expecting: 'WHEN', <expression>

这可能吗?这是通过 Zeppelin。

谢谢你。

【问题讨论】:

  • 您可以使用DYNAMIC QUERY. 创建查询字符串并且只包含必填字段

标签: sql apache-zeppelin


【解决方案1】:

CASE 只能返回单个字段(列),不能返回多个。恐怕您需要为此构建两个单独的查询。我建议不要在 SQL 中,而是在应用程序代码中处理这种逻辑。

【讨论】:

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