表 T1字段 f1 f2 f3 hzfiled
记录 1 0 1
1 1 0
0 0 1
我需要的结果是
字段 f1 f2 f3 hzfiled
记录 1 0 1 ac
1 1 0 ab
0 0 1 c
我怎么用语句来实现呢。
如果f1 字段 记录值 为 1 则hzfield 中 加a
如果f2 字段 记录值 为 1 则hzfield 中 加b
如果f3 字段 记录值 为 1 则hzfield 中 加c
记录 1 0 1
1 1 0
0 0 1
我需要的结果是
字段 f1 f2 f3 hzfiled
记录 1 0 1 ac
1 1 0 ab
0 0 1 c
我怎么用语句来实现呢。
如果f1 字段 记录值 为 1 则hzfield 中 加a
如果f2 字段 记录值 为 1 则hzfield 中 加b
如果f3 字段 记录值 为 1 则hzfield 中 加c
解决方案 »
- 服务器本地测试都是好的,局域网其它电脑就出问题。conn.Open();System.Data.OleDb.OleDbException: 未指定的错误
- System.Web.Mail发送邮件问题
- 需要成熟的.net 开发平台。
- .net的发展史谁能告诉我?谢谢
- 上传文件问题?各位帮忙参考一下
- 水晶报表10没有wizard,特别是没有样式wizard。这是怎么回事?为什么比版本9还差很多?注册问题?
- DXperiencev创建饼图
- 该死的.net,害死我了!微软为什么拿半成品来糊弄人???有没有微软的人近来看看给你解释!顶者有分啊!
- 我是初学者,有个想法不知怎么实现,请高手指点?50分
- 调用 google Web Service 出错 !!!
- 如何动态生成check并修改id跟取值?
- 问一个触发器的问题
create table #
(
f1 int,
f2 int,
f3 int,
hzfiled varchar(10)
)insert into # select 1,0,1,NULL
union
select 1,1,0,NULL
union
select 0,0,1,NULLupdate # set hzfiled=(case when f1=1 then 'a' else '' end) + (case when f2=1 then 'b' else '' end) + (case when f3=1 then 'c' else '' end)select * from #f1 f2 f3 hzfiled
0 0 1 c
1 0 1 ac
1 1 0 ab
(
id int identity(1,1),
F1int,
F2int,
F3int
)insert into tryMyself select 1,0,1,NULL
union
select 1,1,0,NULL
union
select 0,0,1,NULLSELECT F1,F2,F3,(
(CASE WHEN F1=1 THEN 'A' ELSE '' END )+(CASE WHEN F2=1 THEN 'B' ELSE '' END )+
(CASE WHEN F3=1 THEN 'C' ELSE '' END )) FROM TRYMYSELF
分数当然没有问题,大部分是你的了。同时也谢谢大家。
update T1 set hzfiled='a' where f1 = 'true'
update T1 set hzfiled=hzfiled+'b' where f2 = 'true' and hzfiled is not null
update T1 set hzfiled='b' where f2 = 'true' and hzfiled is null
update T1 set hzfiled=hzfiled+'c' where f3 = 'true' and hzfiled is not null
update T1 set hzfiled='c' where f3 = 'true' and hzfiled is null--如果f1,f2,f3用的bit列就用='true'来判断,如果是int列就用"=1"和"=0"这样的来判断
我需要的结果是
字段 f1 f2 f3 hzfiled
记录 1 0 1 ac
1 1 0 ab
0 0 1 c
-----------------------------------——语句如下:
UPDATE 表名
SET hzfiled =
(CASE f1 WHEN 1 THEN 'a' ELSE '' END)
+ (CASE f2 WHEN 1 THEN 'b' ELSE '' END)
+ (CASE f3 WHEN 1 THEN 'c' ELSE '' END)
WHERE 条件
-----------------------------------
(CASE f1 WHEN 1 THEN 'a' ELSE '' END)
+ (CASE f2 WHEN 1 THEN 'b' ELSE '' END)
+ (CASE f3 WHEN 1 THEN 'c' ELSE '' END)
-----------------------------------还有一种方法,不需该物理列,视图里加一列。
SELECT *,
(CASE f1 WHEN 1 THEN 'a' ELSE '' END)
+ (CASE f2 WHEN 1 THEN 'b' ELSE '' END)
+ (CASE f3 WHEN 1 THEN 'c' ELSE '' END) AS hzfile
FROM 表
WHERE 条件
-----------------------------------