[SQL] 자료 10 변환을 사용하여 SQL 만에 자료 (36)
SQL자료 10 변환을 사용하여 SQL 만에 자료 (36)
나는 SQL 문의 맥락에서, 기본 10 변환에베이스 (36)를 수행 할 필요가 어디 상황이 생겨났다. 이런 종류의를 해결하기 위해 오라클 9, 오라클 (10)에 내장 아무것도있을 나타나지 않습니다. 내 구글 - 푸 및 AskTom는 작업을 처리 할 수있는 PL / SQL 함수를 만드는 것이 좋습니다. 즉,이 시점에서 나를 위해 옵션을 선택하지 않습니다. 나는 내가이 문제를 해결하는 힘의 도움을하는 방법에 대한 제안을 찾고 있어요.
시각적 인 형태로이를 넣으려면 ...
WITH
Base36Values AS
(
SELECT '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' myBase36 FROM DUAL
),
TestValues AS
(
SELECT '01Z' BASE36_VALUE,
71 BASE10_VALUE FROM DUAL
)
SELECT *
FROM Base36Values,
TestValues
I는 입력 01Z에 따라 값 (71)을 계산하는 뭔가를 찾고 있어요. 편집 - 뒤로 ... 01Z이 71로 번역 제공됩니다.
뇌물, 각 유용한 답변은 무료 upvote에 가져옵니다.
감사
악.
해결법
-
==============================
1.
select sum(position_value) from ( select power(36,position-1) * case when digit between '0' and '9' then to_number(digit) else 10 + ascii(digit) - ascii('A') end as position_value from ( select substr(input_string,length(input_string)+1-level,1) digit, level position from (select '01Z' input_string from dual) connect by level <= length(input_string) ) )
-
==============================
2.T-SQL은 다음 로직은 오라클 위의 코드는 수행하는 작업을 수행합니다. 이것은 일반적인 일반적인 솔루션과 자료-10 BASE-X를 지원합니다 :
T-SQL은 다음 로직은 오라클 위의 코드는 수행하는 작업을 수행합니다. 이것은 일반적인 일반적인 솔루션과 자료-10 BASE-X를 지원합니다 :
select sum(power(base,pos-1) * case when substring(cnv,pos,1) between '0' and '9' then cast(substring(cnv,pos,1) as int) else 10 + ascii(upper(substring(cnv,pos,1))) - ascii('A') end) from (values(reverse('01Z'), 36)) as t(cnv,base) left join (values(1),(2),(3),(4),(5),(6)) as x(pos) on pos <= len(cnv)
다른 기지 바로 사용으로 사용하려면 :
from (select cnv = reverse('FF'), base=16) as t
또는
from (select cnv = reverse('101'), base=2) as t
이상 6 이상 지원 문자열이 위치 벡터에 더 많은 값을 추가해야합니다.
from https://stackoverflow.com/questions/2568668/base-36-to-base-10-conversion-using-sql-only by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의 최적화 INSERT 속도 때문에 지표의 둔화되고 (0) | 2020.06.08 |
---|---|
[SQL] 어떻게 생성하고 SQL 서버 쿼리 연결된 데이터베이스 서버합니까? (0) | 2020.06.08 |
[SQL] 조건부 집계 성능 (0) | 2020.06.08 |
[SQL] CASE 조건 및 SUM과 SELECT 쿼리 () (0) | 2020.06.08 |
[SQL] LIKE 만 전체 단어 매치? (0) | 2020.06.08 |