永洪社区

标题: sql参数的使用 [打印本页]

作者: yhdata_QifoXPD3    时间: 2024-5-31 15:11
标题: sql参数的使用
WITH RECURSIVE date_ranges AS (
        SELECT
                generate_series ( DATE_TRUNC( 'week', ?{start_time}:: DATE ), DATE_TRUNC( 'week', ?{end_time}:: DATE ), '1 week' :: INTERVAL ) AS week_start UNION ALL
        SELECT
                week_start + INTERVAL '1 week'
        FROM
                date_ranges
        WHERE
                week_start + INTERVAL '1 week' <= DATE_TRUNC( 'week', ?{end_time} :: DATE )
        )
如上所示,使用?{start_time}会导致报错 g5.qry.sql.SQLQuery@421d1182 丢弃空的参数失败: “start_time” in “       


作者: 阿姆斯特朗炮    时间: 2024-5-31 15:11
在参数里,给start_time设置一个默认值
作者: 行走的蜗牛    时间: 2024-5-31 15:24
<a>dd=?{a}</a>
作者: yhdata_QifoXPD3    时间: 2024-5-31 15:32
行走的蜗牛 发表于 2024-5-31 15:24
dd=?{a}

像这种( 'week', ?{start_time}:: DATE ),
我想使用参数 ,作为一个字符串来使用,有什么办法可以做到呢,目前看到的都是放在where里面的
作者: yhdata_yzm    时间: 2024-5-31 15:42
给参数一个默认值
作者: yhdata_QifoXPD3    时间: 2024-5-31 15:47
阿姆斯特朗炮 发表于 2024-5-31 15:42
在参数里,给start_time设置一个默认值

参数是有默认值的
作者: yhdata_QifoXPD3    时间: 2024-5-31 15:47
参数默认值是 本周 第一天
作者: yhdata_QifoXPD3    时间: 2024-5-31 15:49
阿姆斯特朗炮 发表于 2024-5-31 15:42
在参数里,给start_time设置一个默认值

像这种( 'week', ?{start_time}:: DATE ),
我想使用参数 ,作为一个字符串来使用,有什么办法可以做到呢,目前看到的都是放在where里面的
作者: yhdata_QifoXPD3    时间: 2024-5-31 15:49
yhdata_yzm 发表于 2024-5-31 15:42
给参数一个默认值

像这种( 'week', ?{start_time}:: DATE ),
我想使用参数 ,作为一个字符串来使用,有什么办法可以做到呢,目前看到的都是放在where里面的
作者: 阿姆斯特朗炮    时间: 2024-5-31 16:19
yhdata_QifoXPD3 发表于 2024-5-31 15:49
像这种( 'week', ?{start_time}:: DATE ),
我想使用参数 ,作为一个字符串来使用,有什么办法可以做到呢 ...

这样使用是没问题的,只要这个参数有值,他会自动替换成传进来的值,放在where条件里,只是加了<参数>而已,这样没有参数他就拼接,用在上面必须给参数赋值,你在执行这个sql之前debug一下这个参数到底有没有值




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4