本表中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
通不过。

麻烦各位了。



...全文
91 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧