急救阿。。sql字符串修改

来源:百度知道 编辑:UC知道 时间:2024/05/30 13:47:01
对员工资料表中的工号按要求进行如下要求更改.
工号列表 : B10001,C20001,B30020,C10029
都以6开头 B对应1 ,C 对应 2 取字母后面的第一位数字与整个字符串的最后两个字符.
例如:
B10001 61101
C20001 62201
B30020 61320
我是用sql server,不过这个修改是要用游标,搞个循环的 。请问具体怎么做?

你用什么数据库啊?
sql server 数据库:

表名:table,工号字段 t1

获取:
SELECT CASE WHEN SUBSTRING(t1, 1, 1) = 'B' THEN '61' + SUBSTRING(t1, 2, 1)
+ SUBSTRING(t1, 5, 2) WHEN SUBSTRING(t1, 1, 1) = 'C' THEN '62' + SUBSTRING(t1,
2, 1) + SUBSTRING(t1, 5, 2) ELSE '' END AS new_t1
FROM TABLE1

直接替换:
UPDATE TABLE1
SET t1 = (CASE WHEN SUBSTRING(t1, 1, 1) = 'B' THEN '61' + SUBSTRING(t1, 2, 1)
+ SUBSTRING(t1, 5, 2) WHEN SUBSTRING(t1, 1, 1) = 'C' THEN '62' + SUBSTRING(t1,
2, 1) + SUBSTRING(t1, 5, 2) ELSE '' END)

哈哈,这个复杂了,需要用字符串函数和语句才可以弄出来

需要高手了

如果SQL SERVER2000

select substring(工号,2,1),substring(工号,11,2) from 表名