그냥 저장 문자열로 값을 원하는 대신 왜 그것은 나에게 명확하지 않다 출력시 서식을 지정합니다.
표현식이 약간 혼란스럽고 1.3을 곱하고 0.62를 곱합니다.
UPDATE Customer
set Distance = (case when right(distance, 3) = ' km'
then replace(str(cast(left(distance, charindex(' ', distance) - 1),
as float)/0.62137, 6, 1), ' ', '') + 'Miles'
else distance
end)
str()
function은 주어진 길이와 정밀도로 지정된 문자열 형식으로 숫자를 변환 : 난 당신이 뭔가를하려는 생각합니다.
그러나 실제로는 Customer
테이블에 거리, 단위 및 다른 두 값을 결합한 계산 열인 "DistanceMiles"필드를 변경해야합니다.
DistanceMiles as (case when Units = 'Mile'
then replace(str(Distance, 6, 1), ' ', '')+' Miles'
when Units = 'km'
then replace(str(Distance/0.62137, 6, 1), ' ', '')+' Miles'
end)
데이터 유형 varchar를 숫자로 변환하는 중 오류가 발생합니다. – NoviceToDotNet
테이블에'distance' 값을 줄 수 있습니까? – Romesh
'numeric (2,1)'을'numeric (10,1)'으로 변경할 수 있습니다. 정수 부분은 2 자리 인 경우 다음이 – Romesh