【问题标题】:SQL IN Operator QuerySQL IN 运算符查询
【发布时间】:2012-10-15 02:05:20
【问题描述】:

我对 sql IN 查询有疑问。例如,您有一个包含列 id、数量名称的表。

有一个查询:

  SELECT SUM(amount) FROM table WHERE id IN (101,101);

我想要的是添加一定数量的 id。无论 id 在 IN 语句中是什么。这样的话,两个101,数量101+数量101。

问题在于它认为这是一个实例。我该怎么做呢?它的假设是:

  SELECT SUM(amount) FROM table WHERE id IN (SELECT id FROM table.........);

子选择返回“101, 101”。

如何

【问题讨论】:

  • 你需要解释为什么你需要那个。
  • 这个SELECT SUM(amount) FROM table WHERE id IN (SELECT id FROM table.........);有什么问题?
  • 与 SELECT SUM(amount) FROM table WHERE id IN (101,101) 相同;因为查询返回 101,101 是正确的。但是,如果总结起来,SUM 语句将 id 101 和 101 视为仅 1 个实例。我希望它把它当作两个实例。
  • @zerkms 我需要这个,因为我想将金额添加到子选择选择的任何内容中。一个 ID 出现两次没关系,101 的数量为 5。父查询应该返回 10,即 5 + 5。

标签: sql operator-keyword


【解决方案1】:
SELECT SUM(tbl.amount)
FROM tbl
JOIN (select 101 id UNION ALL
      select 101) InList on InList.id = tbl.id

这样展开。

【讨论】:

    【解决方案2】:

    我做这样的事情

    Select * From table1
    inner join dbo.fnSplit(@ArgList, ',')
    

    那肯定对我有用

    【讨论】:

      猜你喜欢
      • 2020-06-06
      • 1970-01-01
      • 2016-04-09
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多