Tengo la siguiente consulta y necesito transmitir id
avarchar
Esquema
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
Lo que intenté
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
pero no funcionan. Por favor recomiende.
Respuestas:
Necesitará
cast
oconvert
como unCHAR
tipo de datos, no hay ningúnvarchar
tipo de datos al que pueda enviar / convertir datos:Vea el siguiente SQL, en acción, en SQL Fiddle :
Además del hecho de que estaba intentando convertir a un tipo de datos incorrecto, la sintaxis que estaba utilizando
convert
era incorrecta. Laconvert
función usa lo siguiente dondeexpr
está su columna o valor:o
Su consulta original tenía la sintaxis al revés.
fuente
concat()
para hacer una conversión no es necesariamente tan intuitivo. Preferiría que mi código sea claro y eso simplemente no tiene mucho sentido.Lo estás obteniendo porque
VARCHAR
no es un tipo válido para lanzar. De acuerdo con los documentos de MySQL ( http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast ), solo puede transmitir a:Creo que tu mejor opción es usar
CHAR
.fuente
si
es postgresql, ¡pero mySql no lo permite!
atajo en mySql:
fuente
No tengo MySQL, pero hay RDBMS (Postgres, entre otros) en los que puedes usar el hack
El concatenar realiza una conversión implícita.
fuente
Resolví un problema para comparar una columna entera xa
varchar
columna conwhere CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_name
fuente
utilizar :
fuente
Estaré respondiendo a esto en términos generales, y muy agradecido a los contribuyentes anteriores.
Estoy usando MySQL en MySQL Workbench. Tuve un problema similar al tratar de concatenar ay
char
anint
juntos usando elGROUP_CONCAT
método. En resumen, lo que me ha funcionado es esto:digamos que tu
char
es 'c' yint
es 'i', entonces, la consulta se convierte en:...GROUP_CONCAT(CONCAT(c,' ', CAST(i AS CHAR))...
fuente
Debería poder hacer algo como esto también:
fuente