SELECT COUNT(*) ,COUNT(1)  ,COUNT( CASE WHEN DailyBudget < 100 THEN NULL ELSE 1 END )  INTO   v_CountryNumber,v_ProvinceNumber,v_CityNumber FROM Add_Daily_Budget_Log001 

解决方案 »

  1.   

    20.2.9.3. SELECT ... INTO语句
    SELECT col_name[,...] INTO var_name[,...] table_expr
    这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。 SELECT id,data INTO x,y FROM test.t1 LIMIT 1;
      

  2.   

    可以赋值给多个变量,但必须确保SELECT语句仅返回一行记录。
      

  3.   

    是一行记录,老大你再看一眼那是count(*) 没有分组;
    上面,这句话没有被封装到过程里面;改成下面的样子就可以了SELECT COUNT(*) ,COUNT(1)  ,COUNT( CASE WHEN DailyBudget < 100 THEN NULL ELSE 1 END )   FROM Add_Daily_Budget_Log001 
    INTO   @v_CountryNumber,@v_ProvinceNumber,@v_CityNumber;
    SELECT @v_CountryNumber,@v_ProvinceNumber,@v_CityNumber;
      

  4.   

    @变量是SESSION变量。
    而非@的是局部变量,只能在存储过程中。
      

  5.   

    存储过程中的动态SQL into必须是@,存储过程中的静态SQL可以不用@