[sql] INT에서 VARCHAR SQL로 변환

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

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

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



답변

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

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


답변

STR기능을 사용하십시오 :

SELECT STR(field_name) FROM table_name

인수

float_expression

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

길이

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

소수

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

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


답변

당신은 CAST기능 을 사용할 수 있습니다 :

SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name


답변

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

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

SELECT LTRIM(ColumnName) FROM TableName


답변

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

SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName


답변