case when的问题,想了很久,未果,求救!!!
我的数据表tbl1有两个列colBig,colSmall
参数@Parp
如果@Parp为形式 '5-5',则从colSmall中查找满足要求的记录
如果@Parp为形式'5',则从colBig中查找满足要求的记录
有'-'表示参数由大类和小类构成。
我在ASP.NET的页面中写了一个case when如下【有错误】:
select * from tbl1 where (case when charindex('-','"+strBigID+"')>0 then colSmall=(Select ID From tblSmall Where Num='"+strBigID+"') else colBig="+strBigID+" end)
请问如何解决,感谢,感谢!!
问题点数:0、回复次数:7Top
1 楼gwg2368(高)回复于 2005-06-02 19:59:49 得分 0
补充:
形式即: '数字-数字' 从小类中匹配
或 '数字' 从大类中匹配Top
2 楼theonewu(纪念)回复于 2005-06-02 20:34:33 得分 0
把case语句挪到 from前面Top
3 楼yjdn(人形机器)回复于 2005-06-02 20:35:14 得分 0
我觉得你做成一个存储过程好一点,这样的话,你的速度会很慢Top
4 楼yjdn(人形机器)回复于 2005-06-02 20:38:13 得分 0
create proc proc_test
@Parp varchar(10)
as
if len(@Parp)=1
begin
select * from tbl1 where colbig=@Parp
end
else
begin
select * from tbl1 where colSmall=@Parp
end
--这样的话,我只需要查询一次就可以了Top
5 楼duanduan1122(俺村俺帅!!!)回复于 2005-06-02 20:39:43 得分 0
楼上建议比较好!!!
做成一个存储过程好一点,这样的话,你的速度会很慢Top
6 楼yjdn(人形机器)回复于 2005-06-02 20:39:50 得分 0
如果你大类的代表数字不仅仅是一位数的话,你就改为判断'-'是否存在,存在就是查询小类,不存在就是查询大类Top
7 楼yjdn(人形机器)回复于 2005-06-02 20:43:21 得分 0
create proc proc_test
@Parp varchar(10)
as
if patindex('%-%',@Parp)=0
begin
select * from tbl1 where colbig=@Parp
end
else
begin
select * from tbl1 where colSmall=@Parp
endTop
相关问题
- 搜索未果:启动WebLogic问题.
- 在DB2(V5.0)中用标准SQL查询未果,WHY?
- 彩色验证码的问题??????研究了几天未果。。。
- 100分求工具软件信息,如果未果当作散分
- Java程序员在北京找工作几天未果,希望朋友们给指点介绍一下!
- 500分!!!ie编程的超难的古怪问题,问过多人未果。请高手相助!
- >> 十一前夕与女友吵架,未和!——主因工作未果,有谁可提供工作的信息?
- 因搜索未果,现寻电子书“常用数值算法丛书——Visual Basic常用数值算法集”
- 倾家荡产求助:程序调了2周,还是未果,大家看看吧,给点意见和经验.
- 删除200万条数据,执行一夜未果,怀疑是回滚段问题,怎么解决




