【问题标题】:How to implement following query如何实现以下查询
【发布时间】:2011-06-07 06:16:13
【问题描述】:

我有一个名为 SomeTable 的表,其列 ID Line Machine Slot

是否可以进行以下查询以及如何进行?

如果我的列表中的值位于表中,我有一个 ID 列表作为结果表获取。

如果它在表中得到一些肯定的结果,如果不是一些否定的结果。

感谢您的帮助。

【问题讨论】:

  • 你的描述不是很清楚。您能否发布表格中的数据示例以及每个条件的预期输出?
  • 您使用的是 MySQL 还是 SQL Server 2005?有区别!
  • @Misnomer:两个都需要
  • 我认为他有一个 ID 的输入列表,他希望 SomeTable 中与其中一个 ID 匹配的所有行加上在 SomeTable 中没有相应行的 ID 列表。
  • 只是出于好奇,为什么两者都需要它?

标签: sql mysql sql-server-2005


【解决方案1】:

点击那个(我的)答案。

当您说“路径输入”时,您是指“传入”还是指向外部文件系统中的文件?

【讨论】:

    【解决方案2】:

    SQL Server 中,您需要声明一个表变量并用您的 id 填充它:

    DECLARE  @myids TABLE (id INT NOT NULL PRIMARY KEY)
    
    INSERT
    INTO     @myids
    VALUES   (1)
    
    INSERT
    INTO     @myids
    VALUES   (2)
    
    …
    
    SELECT  CASE s.id WHEN t.id THEN 1 ELSE 0 END
    FROM    @myids t
    LEFT JOIN
            sometable s
    ON      s.id = t.id
    

    在这两个系统中,您都可以使用内联集:

    SELECT  CASE s.id WHEN t.id THEN 1 ELSE 0 END
    FROM    (
            SELECT  1 AS id
            UNION ALL
            SELECT  2 AS id
            UNION ALL
            …
            ) t
    LEFT JOIN
            sometable s
    ON      s.id = t.id
    

    【讨论】:

    • SQL Server 特定的。他还需要一个 MySql 解决方案。
    • 我无法以某种方式在查询中找到我的列表?
    • @Night Walker - 您想使用外部文件作为 ID 列表吗?你需要告诉我们!
    • @NightWalker:在MySQL,没有。在SQL Server 2008,可以在客户端填写一个表变量。
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2020-06-26
    • 2017-09-03
    • 2013-06-05
    相关资源
    最近更新 更多