J'ai la requête ci-dessous et je dois convertir id
en varchar
Schéma
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
Ce que j'ai essayé
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
mais ils ne travaillent pas. Veuillez suggérer.
Vous aurez besoin de cast
ou convert
en tant que type de données CHAR
, il n'y a pas de type de données varchar
que vous pouvez convertir/convertir en données:
select CAST(id as CHAR(50)) as col1
from t9;
select CONVERT(id, CHAR(50)) as colI1
from t9;
Voir le SQL suivant - en action - sur 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;
Outre le fait que vous tentiez de convertir un type de données incorrect, la syntaxe que vous utilisiez pour convert
était incorrecte. La fonction convert
utilise les éléments suivants, où expr
est votre colonne ou votre valeur:
CONVERT(expr,type)
ou
CONVERT(expr USING transcoding_name)
Votre requête d'origine avait la syntaxe à l'envers.
Vous obtenez cela parce que "VARCHAR" n'est pas un type valide dans lequel lancer. Selon les documents MySQL ( http://dev.mysql.com/doc/refman/5.5/fr/cast-functions.html#function_cast ), vous ne pouvez lancer que:
Je pense que votre meilleur pari est d'utiliser CHAR.
Oui
SELECT id || '' FROM some_table;
or SELECT id::text FROM some_table;
est postgresql, mais mySql ne le permet pas!
raccourci dans mySql:
SELECT concat(id, '') FROM some_table;
Je n'ai pas MySQL, mais il y a des SGBDR (Postgres, entre autres) dans lesquels vous pouvez utiliser le hack
SELECT id || '' FROM some_table;
La concaténation effectue une conversion implicite.
utilisation :
SELECT cast(CHAR(50),id) as colI1 from t9;