根据不同的条件来进行不同的UPDATE
各位朋友:小弟的表1如下:
id name card_id date
1 李三 a123 2007-5-11
10 李四 b234 2007-6-11
100 王五 c345 2007-6-12
问题1:首先取“date”这个字段的年份和月份,组成长度为4年字符串,如“2007-5-11”,则变成“0705”,,然后根据的id长度作判断,如果id长度为1的话,就在原来的基础上加三个零“000”,长度为2的话,就在原来的基础上加两个零“00”,长度为3的话,就加1个零“0”
最终结果如表2:
id name card_id date
07050001 李三 a123 2007-5-11
07060010 李四 b234 2007-6-11
07060100 王五 c345 2007-6-12
然后,假如有一表3,如下:
name id
李三 1
李四 2
王五 3
问题2:能不能联合表2和表3,用name来联合表2和表3,用表2的ID更新表3的ID,,更新后,表3的结果如下表:
name id
李三 07050001
李四 07060010
王五 07060100
请问以上两个复杂的SQL语句能解决吗?请各位朋友赐教,谢谢!!!
------解决方案--------------------1、
create table 表名 ([id] varchar(100), name varchar(100), card_id varchar(100), [date] datetime)
insert into 表名 (id,name,card_id,[date]) select 1, '李三 ', 'a123 ', '2007-5-11 '
insert into 表名 select 10, '李四 ', 'b234 ', '2007-6-11 '
insert into 表名 select 100, '王五 ', 'c345 ', '2007-6-12 '
--你需要的update语句
update 表名 set id = right(convert(varchar(6),[date],112),4) + right( '0000 ' + cast(id as varchar(100)),4)
select * from 表名
drop table 表名