如题。比如想查找满足条件的行数。满足1条件:SELECT COUNT(*) AS Expr1  FROM  table  WHERE (Value = 1)满足2条件:SELECT COUNT(*) AS Expr1  FROM  table  WHERE (Value = 2)满足3条件:SELECT COUNT(*) AS Expr1  FROM  table  WHERE (Value = 3)......有没有办法可以实现把这三条查询语句放到一起执行起来。达到比如这样的效果SELECT COUNT(*) AS Expr1,COUNT(*) AS Expr2,COUNT(*) AS Expr3 from table .........................

解决方案 »

  1.   

    select sum(case when Value = 1 then 1 else 0 end)AS Expr1,
           sum(case when Value = 2 then 1 else 0 end)AS Expr2,
           sum(case when Value = 3 then 1 else 0 end)AS Expr3
    from [table]
      

  2.   

    SELECT 
    (SELECT COUNT(*) FROM table WHERE (Value = 1)) AS Expr1,
    (SELECT COUNT(*) FROM table WHERE (Value = 2)) AS Expr2,
    (SELECT COUNT(*) FROM table WHERE (Value = 3)) AS Expr3
    from table
      

  3.   

    --1
    SELECT sum(case when Value = 1 then 1 else 0 end) AS Expr1,
    sum(case when Value = 2 then 1 else 0 end) AS Expr2,
    sum(case when Value = 3 then 1 else 0 end) AS Expr3
     FROM table
    group by ..
    --2
    SELECT COUNT(*) AS Expr1 FROM table WHERE (Value = 1) union all
    SELECT COUNT(*) AS Expr1 FROM table WHERE (Value = 2) union all
    SELECT COUNT(*) AS Expr1 FROM table WHERE (Value = 3)
      

  4.   

    select 
    sum(case when Value = 1 then 1 else 0 end) AS Expr1
    sum(case when Value = 2 then 1 else 0 end) AS Expr2
    sum(case when Value = 3 then 1 else 0 end) AS Expr3
    from tb
      

  5.   

    也可以用土炮:SELECT 
            (SELECT COUNT(*) AS Expr1 FROM table WHERE (Value = 1)) AS Expr1,        (SELECT COUNT(*) AS Expr1 FROM table WHERE (Value = 2)) AS Expr2,        (SELECT COUNT(*) AS Expr1 FROM table WHERE (Value = 3)) AS Expr3
      

  6.   

    问题解决了,真挺谢谢大家的。
    特别感谢sql_sf。结贴。