sql查询中的“%()s”是啥意思?

Posted

技术标签:

【中文标题】sql查询中的“%()s”是啥意思?【英文标题】:What does "%()s" means in sql query?sql查询中的“%()s”是什么意思? 【发布时间】:2018-02-15 16:20:55 【问题描述】:

有人可以帮我解决这个问题吗?我对 SQL 没有深入的了解。这两行在查询中是什么意思?

HIT_DAY = TO_DATE(%(date)s,'MM-DD-YYYY')
ss.weblab_name = %(experiment)s

日期和实验是我应该传递给查询的某种参数吗?为什么他们以“s”结尾?这个参数怎么传?

这是整个查询:

SELECT 
    session_count,
    treatment
FROM 
    SESSIONS ss
WHERE 
    HIT_DAY = TO_DATE(%(date)s,'MM-DD-YYYY')
AND
    ss.weblab_name = %(experiment)s
GROUP BY
    ss.treatment_name
;

【问题讨论】:

【参考方案1】:

一些 SQL IDE,如 Datagrip 和 Redash 使用这些类型的东西来指示可以输入用户参数。 看 https://www.jetbrains.com/help/datagrip/user-parameters.html http://help.redash.io/article/44-query-parameters

某些应用程序使用这种格式来指示在动态创建查询时应将数据放置在何处(因此这将是一个查询模板)

它们很可能只是字符串替换,因此 %(experiment) 可能会解析为小部件,但列名可能是小部件。或者可能还有其他东西,但它完全取决于使用这些的应用程序。不是红移。

【讨论】:

以上是关于sql查询中的“%()s”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

MS Access SQL 查询中的这个前缀 (ABF:) 是啥意思?

sql查询里面xtype='u'是啥意思?

sql查询里面xtype='u'是啥意思?

sql中 identity(1,1)是啥意思

sql中like是啥意思?

经常看到SQL语句中的where 1=1是啥意思?