【问题标题】:How to write a SQL statement which takes multiple where clauses from an associative array input?如何编写从关联数组输入中获取多个 where 子句的 SQL 语句?
【发布时间】:2017-04-02 23:32:06
【问题描述】:

我有一个映射作为输入,并想在 sql where 子句中使用该映射。 例子, 我有一个表格数据,例如,

ColA ColB ColC
---------------
A    1   abc
B    2   xyz
C    3   jkf
A    3   asf
B    4   dfa

我已经映射为 {A->1, B->2}

现在我想触发查询,

SELECT * from TABLE where KEY = map{key}

但我不知道如何在上述查询中使用我的地图,并且我不想多次调用此查询。

我可以做到, 地图中的关键:

select * from table where key = map[key]

但想在一次数据库调用中完成。 预期结果是

ColA ColB ColC
---------------
A    1   abc
B    2   xyz

【问题讨论】:

  • SELECT * from TABLE t join map m on m.key = t.key ?你的问题不是很清楚。
  • 添加预期结果

标签: php sql sql-server


【解决方案1】:

使用地图构建table valued constructor

select * 
from (values ('A',1),('B',2)) tc (Col1A,ColB)

现在您可以将上述结果与您的表格相结合

SELECT *
FROM   Yourtable Y
       JOIN (VALUES ('A',1),
                    ('B',2)) tc (Col1A, ColB)
         ON Y.Col1A = Tc.Col1A
            AND Y.Col1B = Tc.Col1B 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多