※ 引述《MOONY135 (谈无欲)》之铭言:
: 只求概念 因为SAS SQL语法会稍微的不一样
: [问题叙述]:
: 格式大概长这样 想从数据库里面抓的学号格式改成常见的格式
: 学号 切成 不需要 A1 B1 C1
: 00280061 -> 00 28 00 61
: A1与B1转换成学号的格式是这样
: 00~09 -> 0~9 A~Z -> 10~36
: C1则是完全取用
: A1_TRANS B1_TRANC C1
: 所以这样转换后 28->S 00->0 61->61 合并起来之后
: 会变成S061
假如转换规则是固定的话,我应该会采用直接查表的写法,请参考看看:
use Lab
go
create table student (
id char(8),
)
go
insert into student values ('00280061');
go
declare @pool char(36) = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
select
substring(@pool, substring(id, 3, 2) + 1, 1) +
substring(@pool, substring(id, 5, 2) + 1, 1) +
substring(id, 7, 2)
from student
go