关于case用法问题
在关键字 'CASE' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 cf_list_count_changshang,行 13
在关键字 'WHEN' 附近有语法错误。
create PROCEDURE cf_list_count_changshang
@types int,
@allcount int output
AS
CASE @types
WHEN 1 THEN select @allcount=count(*) from tbl_car_manufacture --厂商总数
WHEN 2 THEN select @allcount=count(*) from tbl_car_manufacture where is_where=0 and isdelete=0 --国内厂商
WHEN 3 THEN select @allcount=count(*) from tbl_car_manufacture where is_where=1 and isdelete=0 --国外厂商
WHEN 4 THEN select @allcount=count(*) from tbl_car_manufacture where isdelete=0 --正常厂商
WHEN 5 THEN select @allcount=count(*) from tbl_car_manufacture where isdelete<>0 --禁止厂商
问题点数:5、回复次数:4Top
1 楼zhilunchen(他山居士)回复于 2005-08-02 22:03:29 得分 1
不能这样用,只能用到select语句中Top
2 楼kellybs(Java、.Net技术网:httP;//www.javavsnet.com)回复于 2005-08-02 22:14:34 得分 0
那该如何写?Top
3 楼vivianfdlpw()回复于 2005-08-02 22:25:53 得分 4
create PROCEDURE cf_list_count_changshang
@types int,
@allcount int output
AS
declare @sql nvarchar(300)
set @sql=N'select @allcount=count(*) from '
select @sql=@sql+ CASE @types
WHEN 1 THEN N'tbl_car_manufacture' --厂商总数
WHEN 2 THEN N'tbl_car_manufacture where is_where=0 and isdelete=0' --国内厂商
WHEN 3 THEN N'tbl_car_manufacture where is_where=1 and isdelete=0' --国外厂商
WHEN 4 THEN N'tbl_car_manufacture where isdelete=0' --正常厂商
WHEN 5 THEN N'tbl_car_manufacture where isdelete<>0' --禁止厂商
END
exec sp_executesql @sql,N'@allcount int output',@allcount output
goTop
4 楼zhilunchen(他山居士)回复于 2005-08-06 01:47:45 得分 0
真是菜鸟Top




