-1

我使用存储过程从数据库表中获取整数(0,1,2)数据。现在我想编写一些查询/修改我的查询以将其转换为字符(A、B、C)并显示它。

基本上我想这样做:

  • 当我在表中找到 0(作为记录值)时,我将其设为 A
  • 当我在表中找到 1(作为记录值)时,我将其设为 B
  • 当我在表中找到 2(作为记录值)时,我将其设为 C

我的参考:https ://dba.stackexchange.com/questions/18215/update-existing-rows-with-squence-number-char-or-any-unique-data

我正在尝试这样:

BEGIN TRANSACTION
update tbl_Test set Col1 = 'A' 
alter table tbl_Test alter column Col1 varchar not null
where Col1 = '0'
COMMIT TRANSACTION

但是,以以下错误结束:

关键字“列”附近的语法不正确。

我也尝试过以下方式;但是,没有成功

select convert(varchar,Col1)as Col1 from tbl_Test --Here I'm converting
--alter column Col1 to varchar
update tbl_Test set Col1 = 'A' 

where Col1 like '0'

显示错误:

将 varchar 值“A”转换为数据类型 int 时转换失败。

我该如何解决?

4

2 回答 2

3

如果数字是 ascii 代码,则可以使用CHAR() 函数。

如果您想从零开始,只需使用 CHAR,但添加 65。(有关其他字符可能性,请参阅 ASCII 表)

编辑: 例如,这将采用一个数值并将其显示为大写字母:

select CHAR(Col1+65) as Col1 from tbl_Test
于 2013-04-30T15:52:06.577 回答
0

主要问题之一 - 您试图将 char 存储在 int 字段中。您需要将字符的 ASCII 值(加 65)存储在该字段中,或者创建另一个 char 类型的表(或 varchar/nvarchar)并将其存储在那里。

于 2013-05-01T11:42:27.200 回答