将 int 转换为 varchar

新手上路,请多包涵

我有以下查询,需要将 id 转换为 varchar

架构

create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');

我试过的

select CAST(id as VARCHAR(50)) as col1 from t9;

select CONVERT(VARCHAR(50),id) as colI1 from t9;

但他们不工作。请建议。

原文由 Mario 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

You will need to cast or convert as a CHAR datatype, there is no varchar datatype that you can cast/convert data to:

 select CAST(id as CHAR(50)) as col1
from t9;

select CONVERT(id, CHAR(50)) as colI1
from t9;

请参阅 SQL Fiddle 上的以下 SQL(实际操作):

 /*! Build Schema */
create table t9 (id INT, name VARCHAR(55));
insert into t9 (id, name) values (2, 'bob');

/*! SQL Queries */
select CAST(id as CHAR(50)) as col1 from t9;
select CONVERT(id, CHAR(50)) as colI1 from t9;

除了您试图转换为不正确的数据类型这一事实之外,您用于 convert 的语法也不正确。 convert 函数使用以下内容,其中 expr 是您的列或值:

  CONVERT(expr,type)

或者

 CONVERT(expr USING transcoding_name)

您的原始查询具有向后的语法。

原文由 Taryn 发布,翻译遵循 CC BY-SA 3.0 许可协议

也应该能够做这样的事情:

 Select (id :> VARCHAR(10)) as converted__id_int
from t9

原文由 John Drinane 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题