INT에서 VARCHAR SQL로 변환


341

Sybase를 사용하고 있으며 "iftype"이라는 열을 반환하는 select를 수행하고 있지만 해당 유형은 int이며 varchar로 변환해야합니다. 변환 함수없이 선택하려고하면이 오류가 발생합니다.

오류 코드 257, SQL 상태 37000 : 데이터 유형 'VARCHAR'에서 'INT'로의 암시 적 변환이 허용되지 않습니다. 이 쿼리를 실행하려면 CONVERT 함수를 사용하십시오.

나는 기능을 구현하는 방법을 모른다 CONVERT. 누구든지 나를 도울 수 있습니까?


5
이것이 필요하다고 생각합니다 : msdn.microsoft.com/en-us/library/ms187928.aspx
Lajos Veres

답변:


593

변환 기능을 사용하십시오.

SELECT CONVERT(varchar(10), field_name) FROM table_name

8
오류에 따르면,의 VARCHARINT있지만, 나는 그의 질문이 아닌 오류 메시지에 응답하고있다.
Tobberoth

2
감사. 그러나 이제 다른 오류가 발생했습니다. 이런 종류의 Select : SELECT CONVERT (varchar (10), field_name) FROM table_name을 수행하려고합니다. 또는 일반적인 필드 : SELECT field_name FROM table_name. 둘 다 맞습니다. 이유를 모르겠습니다. 그러나 변환을 사용하거나 선택하지 않고 선택 끝에 "where"를 시도하면 동일한 오류가 발생합니다. 데이터 유형 'VARCHAR'에서 'INT'로의 암시 적 변환은 허용되지 않습니다. CONVERT 함수를 사용하여이 쿼리를 실행하십시오
Murilo

3
@Murilo 그것은 오류가 당신의 생각과 다르기 때문입니다. 이 오류는 코드 가 필요한 varchar위치 를 사용하려고 함을 나타 int냅니다. 도움을 받으려면 실제 SQL 문을 작성해야합니다.
Tobberoth

14
@Tobberoth, 가치가있는 것에 대해, 나는 인터넷 검색으로 여기에 착륙했습니다. SO의 가치 중 일부는 거의 모든 질문, 심지어 기본적인 질문에 대한 답변을 얻는 것입니다.
KyleMit

6
나는 varchar(11)숫자가 큰 음수 인 경우에 대비 해야한다고 생각합니다 .
Trisped

100

STR기능을 사용하십시오 :

SELECT STR(field_name) FROM table_name

인수

float_expression

소수점이있는 근사 숫자 (float) 데이터 유형의 표현식입니다.

길이

총 길이입니다. 여기에는 소수점, 부호, 숫자 및 공백이 포함됩니다. 기본값은 10입니다.

소수

소수점 오른쪽의 자리수입니다. 소수점 이하 자릿수는 16보다 작거나 같아야합니다. 소수점 이하 자릿수가 16보다 크면 소수점 오른쪽의 16 자리로 결과가 잘립니다.

출처 : https://msdn.microsoft.com/en-us/library/ms189527.aspx


3
STR()정답이어야합니다. 대안보다 간단하고 오류가 적습니다.
HerrimanCoder

7
이상한 이유 때문에 텍스트 앞에 탭을 추가했기 때문에 이것이 효과가 없었습니다. 선택한 솔루션이 작동했습니다.
MaQy

3
str은 변환 된 숫자의 앞면에 공백을
채워서

13
LTRIM (STR ()) 사용
ashilon

2
STR ()은 문자열로 변환하는 변수의 앞에 공백을 제공합니다. 십진 변수를 변환하는 것이 좋지만 Int에는 적합하지 않습니다.
Ebleme


3

실제로 STR 또는 변환을 사용할 필요가 없습니다. 'xxx'+ LTRIM (1)을 선택하면 작업이 수행됩니다. 아마도 LTRIM은 후드 아래에서 Convert 또는 STR을 사용합니다.

LTRIM은 또한 길이를 제공 할 필요가 없으며 일반적으로 기본값 10은 정수에서 문자열로 변환하기에 충분합니다.

SELECT LTRIM(ColumnName) FROM TableName

0

CONVERT(DATA_TYPE , Your_Column)SQL에서 CONVERT 메소드의 구문입니다. 이 변환 함수에서 쉼표 (,)의 오른쪽에있는 열의 데이터를 쉼표 (,)의 왼쪽에있는 데이터 유형으로 변환 할 수 있습니다. 아래 예를 참조하십시오.

SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.