【问题标题】:sql server equivalent of mysql where insql server 相当于 mysql where in
【发布时间】:2013-08-20 19:44:54
【问题描述】:

我一直使用 MySQL Where In 来过滤单个字段的多个值。我正在寻找 SQL Server 的等价物。当我在 SS 上进行设置时,它会将每个项目视为我表中的一个字段,而不是我的字段中的一条记录。有谁知道等价物吗?谢谢! MySQL:

    SELECT quote_id,entity_id FROM customer.customer_id4
    WHERE
    quote_id IN ("00033658.0","00033361.0","00032971.0")

在 SS 中使用类似格式时出错:

    Invalid column name '00033658.0'
    Invalid column name '00033361.0'
    Invalid column name '00032971.0'

【问题讨论】:

  • " 用作对象分隔符而不是字符串分隔符。解决方案:WHERE quote_id IN ('00033658.0', ...
  • 如果这些是字符串,那么您应该在值周围使用单引号 -- '00033658.0','00033361.0','00032971.0'。双引号将它们解释为列名。
  • 感谢大家的帮助。我在 Transact-SQL 中处理的不多。幸运的是,MySQL 没有那么敏感。

标签: mysql sql-server where


【解决方案1】:

" 在 SQL server 中用于分隔字段名称。您需要改用',例如

... quote_id IN ('00033658.0', '00033361.0', etc...)
                 ^--        ^--- note the different quotes

【讨论】:

    【解决方案2】:

    我认为你只需要用单引号 (') 替换双引号 (")。

    SELECT quote_id,entity_id FROM customer.customer_id4
    WHERE
    quote_id IN ('00033658.0','00033361.0','00032971.0')
    

    【讨论】:

      【解决方案3】:

      尝试在 IN 语句中使用单引号并查看此链接:http://technet.microsoft.com/en-us/library/ms177682.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-25
        • 2011-03-27
        • 2010-09-27
        • 2011-01-31
        • 1970-01-01
        相关资源
        最近更新 更多