Estou usando o Sybase e estou fazendo um select que retorna uma coluna chamada "iftype", mas seu tipo é int e preciso converter em varchar. Quando tento fazer a seleção sem a função de conversão, recebo este erro:
Código de erro 257, estado SQL 37000: conversão implícita do tipo de dados 'VARCHAR' para 'INT' não é permitida. Use a função CONVERT para executar esta consulta.
Não sei como implementar a função CONVERT
. Alguém pode me ajudar por favor ?
sql
select
type-conversion
sybase
Murilo
fonte
fonte
Respostas:
Use a função de conversão.
fonte
VARCHAR
aINT
mas eu estou respondendo a sua pergunta, não a mensagem de erro.varchar
ondeint
é necessário. Você precisa escrever sua instrução SQL real para ajudá-lo.varchar(11)
caso o número seja um número negativo grande.Use a
STR
função:Argumentos
expressão flutuante
É uma expressão do tipo de dados numérico aproximado (flutuante) com um ponto decimal.
comprimento
É o comprimento total. Isso inclui ponto decimal, sinal, dígitos e espaços. O padrão é 10.
decimal
É o número de casas à direita do ponto decimal. decimal deve ser menor ou igual a 16. Se decimal for maior que 16, o resultado será truncado para dezesseis casas à direita do ponto decimal.
fonte: https://msdn.microsoft.com/en-us/library/ms189527.aspx
fonte
STR()
deve ser a resposta correta, é mais simples e menos suscetível a erros do que as alternativas.Você pode usar a
CAST
função:fonte
Na verdade, você não precisa usar STR ou Convert. Basta selecionar 'xxx' + LTRIM (1) faz o trabalho. Possivelmente, o LTRIM usa Convert ou STR sob o capô.
O LTRIM também remove a necessidade de fornecer comprimento e, normalmente, o padrão 10 é bom o suficiente para a conversão de número inteiro em string.
fonte
CONVERT(DATA_TYPE , Your_Column)
é a sintaxe do método CONVERT no SQL. A partir desta função de conversão, podemos converter os dados da coluna que está no lado direito da vírgula (,) para o tipo de dados no lado esquerdo da vírgula (,). Veja o exemplo abaixo.fonte