我有一个表table ,里面有nl一列,现在想通过编写SQL语句实现 查询.完成以下显示
年龄       人数
45以上      xxxx
45以下      xxx
请高手指教如何写.

解决方案 »

  1.   

    select 年龄='45以上',人数=count(*)
    from T
    where nl>45
    union all
    select 年龄='45以下',人数=count(*)
    from T
    where nl<=45
      

  2.   

    谢谢楼上的
    但是我要用一句SQL语句来实现啊
      

  3.   

    CREATE TABLE #T(年龄 int)
    INSERT INTO #T SELECT 12
    INSERT INTO #T SELECT 23
    INSERT INTO #T SELECT 45
    INSERT INTO #T SELECT 66
    INSERT INTO #T SELECT 21
    INSERT INTO #T SELECT 34
    INSERT INTO #T SELECT 55
    INSERT INTO #T SELECT 61SELECT CASE WHEN 年龄 >45 THEN '45以上' ELSE '45以下' END AS 年龄 
    ,COUNT(CASE WHEN 年龄>45 THEN 1 ELSE 0 END) AS 人数 
    FROM #T
    GROUP BY 
    CASE WHEN 年龄 >45 THEN '45以上' ELSE '45以下' END/*
    年龄 人数
    ---------------------
    45以上 3
    45以下 5
    */
    DROP TABLE #T