Tenho a consulta abaixo e preciso transmitir id
paravarchar
Esquema
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
O que eu tentei
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
mas eles não funcionam. Por favor sugira.
Respostas:
Você precisará de
cast
ouconvert
como umCHAR
tipo de dados, não há nenhumvarchar
tipo de dados para o qual você possa converter / converter dados:Veja o seguinte SQL - em ação - em SQL Fiddle :
Além do fato de que você estava tentando converter para um tipo de dados incorreto, a sintaxe para a qual estava usando
convert
estava incorreta. Aconvert
função usa o seguinte ondeexpr
está sua coluna ou valor:ou
Sua consulta original tinha a sintaxe invertida.
fonte
concat()
para fazer uma conversão não é necessariamente tão intuitivo. Eu prefiro que meu código seja claro e isso simplesmente não faz muito sentido.Você está recebendo isso porque
VARCHAR
não é um tipo válido para lançar. De acordo com os documentos do MySQL ( http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast ), você só pode transmitir para:Acho que sua melhor aposta é usar
CHAR
.fonte
sim
é postgresql, mas mySql não permite isso!
atalho em mySql:
fonte
Não tenho MySQL, mas existem RDBMS (Postgres, entre outros) em que você pode usar o hack
O concatenado faz uma conversão implícita.
fonte
Resolvi um problema de comparação de uma coluna inteira da coluna xa
varchar
comwhere CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_name
fonte
usar :
fonte
Estarei respondendo a isso em termos gerais, e muito grato aos contribuintes acima.
Estou usando o MySQL no MySQL Workbench. Eu tive um problema semelhante ao tentar concatenar um
char
e umint
juntos usando oGROUP_CONCAT
método. Em resumo, o que funcionou para mim é o seguinte:digamos que seu
char
é 'c' eint
é 'i', então, a consulta se torna:...GROUP_CONCAT(CONCAT(c,' ', CAST(i AS CHAR))...
fonte
Deve ser capaz de fazer algo assim também:
fonte