Tengo la siguiente consulta y necesito transmitir idavarchar
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á
castoconvertcomo unCHARtipo de datos, no hay ningúnvarchartipo 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
convertera incorrecta. Laconvertfunción usa lo siguiente dondeexprestá 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
VARCHARno 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
varcharcolumna conwhere CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_namefuente
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
charanintjuntos usando elGROUP_CONCATmétodo. En resumen, lo que me ha funcionado es esto:digamos que tu
chares 'c' yintes '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