2014-01-16 2 views
-5

해당 값을 가진 데이터베이스 테이블이 있습니다. 이제 저는 열의 "합"을 만들고 싶습니다. 이 작업을 수행하려고 할 때마다 "합계 연산자에 대해 피연산자 데이터 형식 varchar가 유효하지 않습니다"라는 오류 메시지가 표시됩니다 (). 데이터 유형으로 varchar (100)가 포함 된 4 개의 열이 있습니다.Sql 수학적 계산

+3

우리에게 검색어를 제시해주십시오 둥근 대답 다음이 시도 할 수 있습니다 : 번호가 정말 문자열 표현에 저장되는 경우, 단지 캐스트를 사용합니다. – Oyeme

+4

'varchar' 열에 숫자 값을 저장하는 이유는 무엇입니까? (만약 그들이 숫자가 아니라면 왜 그들을 합산하려고합니까?) –

+0

Martin Smith에게 감사드립니다. 그것의 모든 값은 숫자입니다. 하지만 varchar를 사용했습니다. 그래서 내가 왜 오류를 생성하고 제거하는 방법을 알고 싶습니다. –

답변

0

당신은

select Round(sum(cast(column as float)),2) 
+0

DhruvJoshi 정말 고마워. 이제 그 일. 나는 이것이 정상적인 것이라고 생각한다. 하지만 나는 그 초보자입니다. 다시 감사합니다. –

2

음, 오류 메시지는 분명합니다. 문자열을 "합하는"개념은 의미가 없습니다.

select sum(cast(column as float)) 
+0

Gordon Linoff에게 고맙습니다. 이제 그 일. 내가 정수로 모든 값을 저장, 나는 정수 데이터 형식을 사용할 수 있습니다. 하지만 varchar를 사용했습니다. 왜 우리가 float 데이터 형을 사용하는지 알 수 있습니다. –

+0

@ArunkumarMurugesan. . . 숫자가 어떻게 보이는지 지정하지 않기 때문입니다. 'float'는'int' 나'unsigned'보다 일반적입니다. 숫자가 정수인 경우 적절한 유형으로 변환하십시오. 데이터가 올바른 유형으로 저장되도록 테이블을 수정하는 것이 좋습니다. –

+0

당신의 귀중한 답변 주셔서 감사합니다 .. 다시 한번 감사드립니다 .. –