Northiwind CustomerSELECT *
FROM Customer
WHERE ((Country = 'USA' AND (City = 'San Francisco' OR City = 'Portland')) OR Country = 'UK')这样怎么不能查出我想要的数据啊?

解决方案 »

  1.   

    --汗, 表名錯了SELECT *
    FROM Customers
    WHERE ((Country = 'USA' AND (City = 'San Francisco' OR City = 'Portland')) OR Country = 'UK')
      

  2.   

    SELECT *
    FROM Customers
    WHERE (
    (Country = 'USA' AND (City = 'San Francisco' OR City = 'Portland')
    ) OR Country = 'UK')
    --result(10 row(s) affected)
      

  3.   

    SELECT * FROM Customer
    WHERE ((Country = 'USA' AND (City = 'San Francisco' OR City = 'Portland')) OR Country = 'UK')相当于
    SELECT * FROM Customer
    where (Country = 'USA' AND City = 'San Francisco') or
    (Country = 'USA' AND City = 'Portland') or
    Country = 'UK'
      

  4.   

    Customer  --> Customers
      

  5.   

    语法没有问题.集合也没有问题.if Country = 'USA'
       then City = 'San Francisco' OR City = 'Portland'
    or
    if Country = 'UK'
      

  6.   

    查出来的接果老是有一条不符合条件的结果。
    我怀疑是第一个OR惹的祸。不知道这种SQL的解析机制是怎样的?