SELECT
(SELECT TOP 10 A.ID,A.NAME FROM A WHERE ID<300) AS 'P1',
(SELECT TOP 4 A.ID,A.NAME FROM A WHERE ID>60) AS 'P2' FROM A;
我本意是筛选出来数据,结果提示我:当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。我没理解语法错了?

解决方案 »

  1.   

    SELECT TOP 10 A.ID,A.NAME FROM A WHERE ID<300
    union all
    SELECT TOP 4 A.ID,A.NAME FROM A WHERE ID>60
      

  2.   

    谢谢roy_88,但是还有一个疑问,如果第一个字句带有order by排序,会提示
    :关键字 'union' 附近有语法错误。这怎么处理呢?
      

  3.   

    把ORDER子句放到第二个查询语句后面.
      

  4.   

    假如:SELECT TOP 10 A.ID,A.NAME FROM A WHERE ID<300 ORDER BY ID DESC
    union all
    SELECT TOP 4 A.ID,A.NAME FROM A WHERE ID>60
    这样的话,会提示union附近有错误
      

  5.   

    SELECT TOP 10 A.ID,A.NAME FROM A WHERE ID<300
    union all
    SELECT TOP 4 A.ID,A.NAME FROM A WHERE ID>60 ORDER BY ID DESC