本表中select语句判断怎么做?

zbasic 2008-03-20 11:03:27
有表结构如下
cat_id cat_name cat_name_bm
1 test_a test
2 test_b test
3 test_c test_c


cat_name和cat_name_bm中只取一个字段名称。判断cat_name_bm的字段,如果检测到字段cat_name_bm='test'的时候,取cat_name字段,
cat_name_bm<>'test'时取cat_name_bm。

在使用select 语句中希望得到的结果是
cat_id cat_name

1 test_a
2 test_b
3 test_c

我写了个
select (if cat_name_bm<>'test' then cat_name_bm else cat_name end if) from fcst_cat
通不过。

麻烦各位了。



...全文
51 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zlp321002 2008-03-20
select cat_id,cat_name=(case when cat_name_bm='test' then cat_name
when cat_name_bm!='test' then cat_name_bm end)
from 表
回复
zbasic 2008-03-20
这就是CSDN的效率啊。。。。
这平台每次都没让我失望。
回复
areswang 2008-03-20
等建完表后人就这么多了!
回复
areswang 2008-03-20
declare @a table(cat_id int,cat_name varchar(10),cat_name_bm varchar(10))
insert into @a select 1,'test_a','test'
union all select 2,'test_b','test'
union all select 2,'test_c','test_c'
select * from @a
select cat_id,case when cat_name_bm='test'then cat_name else cat_name_bm end cat_name from @a
回复
zbasic 2008-03-20
谢谢这么晚还在泡CSDN的各位。
3楼的报错“在关键字 'nullif' 附近有语法错误。”
2楼的正解,谢了!第一时间给分结贴。
回复
dawugui 2008-03-20
select cat_id , col = case when cat_name_bm = 'test' then cat_name else cat_name_bm end from tb
回复
JiangHongTao 2008-03-20
seelct cat_id,isnull(nullif( cat_name_bm,'test'),cat_name) from  fcst_cat 
回复
zbc1009 2008-03-20
select (case when cat_name_bm <>'test' then cat_name_bm else cat_name end ) cat_name from fcst_cat
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-20 11:03
社区公告
暂无公告