SQL参数化查询,还可以在哪里传递“ all”?

时间:2018-11-13 17:11:12

标签: sql sql-server query-parameters

很难找到关于此的任何信息,但是可以将“ all”或“ *”之类的值传递给参数化查询的?,以获得所有结果:

AND st.SomeColumn = ?

在哪里?将返回所有比赛?因此,从理论上讲,您可以传递任何可能的单个匹配项,也可以在没有任何字符串串联恶作剧的情况下检索所有匹配项(我知道这是完全可能的,并且是我的计划B)。

1 个答案:

答案 0 :(得分:1)

否,您需要将其构建到查询逻辑中。一种简单的方法是(如果列中不包含任何NULL值)是将参数作为NULL传递并执行:

 st.SomeColumn = COALESCE(?, st.SomeColumn)

否则:

 (st.SomeColumn = ? OR (? IS NULL))

这需要传递两次参数-这就是为什么命名参数很方便的原因。