我在 StackOverflow 上搜索這個問題,但沒有得到任何答案。所以我把它貼在這里。
我想在 SQL 中以盡可能簡單的方式計算僅由字符組成的字串的 ASCII 值。
字串是“DESIGNATION OF EMPLOYEE”。我想計算字串的總 ASCII 值。
我嘗試了迄今為止最長的方法,看起來像這樣 -
SELECT SUM(ASCII('D') ASCII('E') ASCII('S') ASCII('I') .....) AS "TOTAL ASCII" FROM DUAL;
注意:我想計算字串的總 ASCII 值,其中包括所有字符的組合 ASCII 值。
uj5u.com熱心網友回復:
您可以使用CONNECT BY展開字符,然后SUM該ASCII值。
SELECT str , SUM(ASCII(REGEXP_SUBSTR(str,'.',1,level))) AS "TOTAL ASCII" FROM (SELECT 'DESIGNATION OF EMPLOYEE' AS str FROM DUAL) CONNECT BY REGEXP_SUBSTR(str,'.',1,level) IS NOT NULL GROUP BY str;
| STR | 總 ASCII |
|---|---|
| 指定員工 | 1642 |
db<>在這里擺弄
uj5u.com熱心網友回復:
一種選擇是將DUMP()函式與正則運算式函式一起使用,例如
WITH t AS
(
SELECT str0, REGEXP_SUBSTR(DUMP(str0),'[^: ] $') AS str
FROM (SELECT 'DESIGNATION OF EMPLOYEE' AS str0 FROM dual)
)
SELECT str0, SUM(REGEXP_SUBSTR(str,'[^,] ',1,level)) AS "TOTAL ASCII"
FROM t
CONNECT BY level <= REGEXP_COUNT(str,',') 1
GROUP BY str0
Demo
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406856.html
標籤:
