类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
lanmu_id lanmu_m
4 01
1 0101
6 010101
2 010102
5 010103
3 010104
7 010105
8 0102
10 010201
9 010202
11 010203
如上,lanmu_id为主键,要求:
将lanmu_m为0101的记录与lanmu_m为0102的记录互换时,要lanmu_m为010101变为010201,010102变为010202,...;而010201变010101,010202变为010102...;也就是下层栏目要随着上层栏目变.
求一sql语句
网友回答:
update tb set lanmu_m= case left(lanmu_m,4) when 0101 then 0102 when 0102 then 0101 else lanmu_m end
where len(lanmu_m)>4
ACCESS中应该是这样吧
update 表 set lanmu_m=iif(lanmu_m like 0101%,0102 & mid(lanmu_m,5),0101 & mid(lanmu_m,5))
where lanmu_m like 0101%
or lanmu_m like 0102%
zjcxc(邹建) 的办法应该没问题啊,从结果分析好像是lanmu_m like 0101%表达式总是被判断为不成立。如果是这样的话,这样子应该会有效。
update 表 set lanmu_m=iif(lanmu_m like 0101%,0102 & mid(lanmu_m,5),0101 & mid(lanmu_m,5))
where lanmu_m like 0102%
update 表 set lanmu_m=iif(lanmu_m like 0102%,0101 & mid(lanmu_m,5),0102 & mid(lanmu_m,5))
where lanmu_m like 0101%
update 表
set lanmu_m=case
when len(lanmu_m)>=4 and left(lanmu_m,4)= 0101
then stuff(lanmu_m,1,4,0102)
when len(lanmu_m)>=4 and left(lanmu_m,4)= 0102
then stuff(lanmu_m,1,4,0101)
else lanmu_m
end
where left(lanmu_m)=0101
or left(lanmu_m)= 0102