每当我放置where子句时,我都无法使用存储过程中的where子句显示错误

时间:2018-04-01 12:50:21

标签: sql sql-server

你能告诉我我的语法错误吗?

每当我放置where子句时,我无法使用存储过程中的where子句显示错误。

enter image description here

4 个答案:

答案 0 :(得分:2)

您的SQL语法错误。 WHERE必须在JOIN之后。例如......

select ...
  from A join C on ...
 where ...

答案 1 :(得分:0)

就像Abra所说,你的语法顺序不正确。 SELECT语句的逻辑处理顺序是

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE或WITH ROLLUP
  7. HAVING
  8. 选择
  9. DISTINCT
  10. ORDER BY
  11. TOP
  12. 然而,即使前面的序列通常是正确的,也有不常见的情况,序列可能不同。

答案 2 :(得分:0)

这是您的查询的编写方式:

SELECT *   --<-- replace this with the columns you need
FROM tblProducts A 
INNER JOIN tblBrands C ON C.BrandID = A.PBrandID
CROSS APPLY 
            (
              SELECT TOP 1 *
              FROM tblProductImages B
              WHERE B.PID = A.PID
              ORDER BY B.PID DESC
             ) B
WHERE A.PGender = 1
ORDER BY A.PID DESC

答案 3 :(得分:0)

首先学习连接和使用where子句中的where的基础知识。在你的例子中,应该在C.BrandId = A.Brandid之后或者在order by子句之前