[SQL] 뷰에서 - 과학 표기법 (> 숫자 VARCHAR에서) 캐스팅
SQL뷰에서 - 과학 표기법 (> 숫자 VARCHAR에서) 캐스팅
, 820.0E-12 + 00 10.0E을 : 이유로 나는 다음과 같은 데이터가 포함 된 VARCHAR 열이 도움이되지 수 있습니다.
나는 숫자 값을합니다. 나는 작동이 테스트 쿼리가 그래서 :
declare @d varchar(256)
set @d = '820.0E-12'
select
CASE
WHEN @d like '%E-%' THEN LTRIM(RTRIM(CAST(CAST(@d AS FLOAT) AS DECIMAL(18,18))))
WHEN @d like '%E+%' THEN NULL
ELSE @d
END
내 결과는 다음과 같습니다 0.000000000820000000를 (내가 원하는입니다)
이 같은 숫자> 0 (+ 00 10.0E)에 대한 계정에 내 SQL을 변경 :
WHEN @d like '%E+%' THEN CAST(@d AS FLOAT)
(내가 원하는하지 무엇 인) 8.2E-10 : 내 결과로 변경
만약 변화 @ D = '10 .0E + 00 다음 I 얻을 10 (정확하다).
내가 주조 과학적 표기법을 포함하는 VARCHAR 열, 출력을 할 필요가 있음을 볼 수있어 / 소수 (18, 18)로 변환.
누군가가 여기서 뭐 막무가내 일이야 말해 줄래?
또는, 어쩌면 내 질문해야한다, 내가 캐스트 어떻게 / 뷰에서 소수점 출력에 VARCHAR 과학적 표기법 열을 변환?
문 번호를 작동 <0하지만 나는 또한 번호를 계정에 필요> 내가 언제 두 번째를 변경하려면 CAST, 그것은 휴식을 포함하면 0 언제 내 첫 번째는 / 잘못된 결과를 제공합니다.
해결법
-
==============================
1.모두 같은 시간에 함께 여기에오고 몇 가지 문제가있다. 그들 중 일부에서 살펴 보자 :
모두 같은 시간에 함께 여기에오고 몇 가지 문제가있다. 그들 중 일부에서 살펴 보자 :
여기에 완전히 모든 것을 해결해야하는 솔루션이다 :
SELECT LTRIM(RTRIM(CASE WHEN @d like '%E-%' THEN CAST(CAST(@d AS FLOAT) AS DECIMAL(18,18)) WHEN @d like '%E+%' THEN CAST(CAST(@d AS FLOAT) AS DECIMAL) ELSE @d END))
-
==============================
2.당신은 ISO "진짜"데이터 유형을 사용할 수 있습니다
당신은 ISO "진짜"데이터 유형을 사용할 수 있습니다
SELECT convert(numeric(18,18),convert(real,'820.0E-12')) --OR with more precision SELECT convert(numeric(18,18),convert(float(53),'820.0E-12'))
-
==============================
3.
mysql> select '820.0E-12' + 0, '10.0E+00' + 0; +-----------------+----------------+ | '820.0E-12' + 0 | '10.0E+00' + 0 | +-----------------+----------------+ | 0.00000000082 | 10 | +-----------------+----------------+
단순히 VARCHAR에 0을 추가하는 것은 당신에게 숫자 값을 제공해야한다고. (OK, 먼저 TRIM이 필요할 수 있습니다.)
본질적으로 적절한 용도는 M 또는 N FLOAT의 경우 (m, N)이있다; 간단하게 (약 16) 물건 (최대 7에 대한 유효 숫자에 대한) FLOAT 또는 DOUBLE을 선언합니다.
from https://stackoverflow.com/questions/6750021/casting-scientific-notation-from-varchar-numeric-in-a-view by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL은 외래 키 삽입 삽입, / 옆 널빤지를 중첩 (0) | 2020.07.07 |
---|---|
[SQL] BigQuery에 날짜 - 분할 뷰 (0) | 2020.07.07 |
[SQL] "알 수없는 '필드 목록'에서 열 ',하지만 열이 존재합니까 (0) | 2020.07.07 |
[SQL] 작성 또는 PL 두 차원 배열을 시뮬레이션 / SQL (0) | 2020.07.07 |
[SQL] 모든 행에 두 개의 열이 표시 총계에 의해 그룹 (0) | 2020.07.07 |