1

我有一个非常基本的问题要解决(无论如何对我来说都是基本的),但我无法理解为什么一段代码可以独立工作,但是当你将它包装在 IF 语句中时,它不会不。

这工作得很好:

SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB

但是,当我尝试在 IF 语句中使用它时:

IF @FILTERBY = '2'
  BEGIN
    (SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB)
  END

我收到错误“关键字‘ORDER’附近的语法不正确

我做了一些搜索,但我似乎无法弄清楚为什么这不起作用。是否有另一种方式来排序返回的结果集?

4

3 回答 3

2

把括号去掉

像这样:

IF @FILTERBY = '2'
  BEGIN
    SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB
  END
于 2013-03-06T00:00:19.240 回答
1

删除 ( 和 ):

IF @FILTERBY = '2'
BEGIN
    SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB
END
于 2013-03-06T00:00:19.770 回答
1

取消 SELECT 周围的括号

于 2013-03-06T00:00:36.567 回答