我在下面的查询中,需要转换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;
但它们不起作用。请提出建议。
我在下面的查询中,需要转换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;
但它们不起作用。请提出建议。
Answers:
您将需要cast
或convert
作为CHAR
数据类型,没有varchar
可以将数据强制转换/转换为以下数据的数据类型:
select CAST(id as CHAR(50)) as col1
from t9;
select CONVERT(id, CHAR(50)) as colI1
from t9;
请参阅下面的SQL(实际上)在SQL Fiddle中:
/*! 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)
您的原始查询的语法向后。
concat()
用来进行转换不一定那么直观。我希望我的代码清晰明了,但这并没有多大意义。
之所以得到它,VARCHAR
是因为这不是强制类型。根据MySQL文档(http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast),您只能转换为:
我认为最好的办法就是使用CHAR
。
是
SELECT id || '' FROM some_table;
or SELECT id::text FROM some_table;
是postgresql,但是mySql不允许这样做!
mySql的快捷方式:
SELECT concat(id, '') FROM some_table;
我没有MySQL,但是可以在其中使用RDBMS(Postgres等)
SELECT id || '' FROM some_table;
串联进行隐式转换。