日期:2014-05-18  浏览次数:20517 次

如何实现'A' + 1 = 'B'
现在有一个表   如:
          id                   score
          1                         50
          2                         50
          3                         50

我如何用把字母1处改为1A,2处改为2B,把3改为3C

我的方法是

DECLARE   @temp_char   VARCHAR(10),@temp_int   int     //设置临时变量

SELECT   @temp_char   =   'A '

为什么下面这里就报错呢   说不能转换
SELECT   @temp_int   =   convert(INT,   @temp_char)
SELECT   @temp_int   =   @temp_int   +   1
SELECT   @temp_char   =   convert(VARCHAR(10),   @temp_int)


------解决方案--------------------
SQL code

create table tb(id int,score int)
insert into tb
select 1,10 union all
select 2,34
go

select *,char(ascii('A')+(id-1)%26) as word
from tb

drop table tb

/****************

id          score       word
----------- ----------- ----
1           10          A
2           34          B

(2 行受影响)

------解决方案--------------------
SQL code

select ascii('A')
--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
create table [test]([id] int,[score] int)
insert [test]
select 1,50 union all
select 2,50 union all
select 3,50

select LTRIM([id])+CHAR(64+id) as id,[score] from test

/*
id    score
1A    50
2B    50
3C    50
*/