欄位內,字串加總 |
尚未結案
|
asou982002
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2003-06-22 發送簡訊給我 |
|
rightyo
一般會員 ![]() ![]() 發表:16 回覆:22 積分:17 註冊:2004-11-21 發送簡訊給我 |
|
shinjie
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:12 回覆:275 積分:287 註冊:2003-03-19 發送簡訊給我 |
|
asou982002
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2003-06-22 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi asou982002, 可以自己寫一個 Function (假如你的 DB 許可的話)
以下用 Oracle 為範例
CREATE OR REPLACE FUNCTION TEST_FUNCTION1 (P_IN_NUMBER IN VARCHAR2) RETURN NUMBER IS RESULT NUMBER; V_NUMBER NUMBER; BEGIN BEGIN V_NUMBER := P_IN_NUMBER; RESULT := 0; LOOP RESULT := RESULT MOD(V_NUMBER,10); V_NUMBER := TRUNC(V_NUMBER / 10); EXIT WHEN V_NUMBER = 0; END LOOP; EXCEPTION WHEN OTHERS THEN RESULT := -1; END; RETURN(RESULT); END TEST_FUNCTION1; 如此一來即可 SELECT NUM,TEST_FUNCTION1(NUM) TOTSTR FROM AAA取得 TotalStr
------
Fishman |
asou982002
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2003-06-22 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi asou982002, 如你先前的做法,一個字元一個字元讀出,轉換(需考慮例外處理,即非數字字元)、加總、回傳
CREATE OR REPLACE FUNCTION TEST_FUNCTION2 (P_IN_STR IN VARCHAR2) RETURN NUMBER IS RESULT NUMBER; V_NUMBER NUMBER; BEGIN BEGIN RESULT := 0; FOR I IN 1..LENGTH(P_IN_STR) LOOP BEGIN V_NUMBER := TO_NUMBER(SUBSTR(P_IN_STR,I,1)); EXCEPTION WHEN OTHERS THEN V_NUMBER := 0; END; RESULT := RESULT V_NUMBER; END LOOP; EXCEPTION WHEN OTHERS THEN RESULT := -1; END; RETURN(RESULT); END TEST_FUNCTION2;
------
Fishman |
asou982002
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2003-06-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |