我希望有人能幫助我。在Oracle中用逗號分隔的列中的計數或總計值SQL
我期待在excel中找到來自同一個字段的多個值的總數是否有可能?
我的樣品列是:
0,0,1,1,1,2
我想所有這些值在輸出加在一起,總共有列
感謝
我希望有人能幫助我。在Oracle中用逗號分隔的列中的計數或總計值SQL
我期待在excel中找到來自同一個字段的多個值的總數是否有可能?
我的樣品列是:
0,0,1,1,1,2
我想所有這些值在輸出加在一起,總共有列
感謝
請嘗試:
SET SERVEROUTPUT ON
DECLARE
lv_formula VARCHAR2(1000):='0,0,1,1,1,2';
result NUMBER;
BEGIN
lv_formula:=replace(lv_formula, ',', '+');
EXECUTE IMMEDIATE 'BEGIN :out := '||lv_formula||'; END;' USING OUT result;
DBMS_OUTPUT.PUT_LINE('Answer is...' || result);
END;
嗨,謝謝你的反應,它不完全是我需要的,我期待從oracle數據庫執行此操作並將其顯示爲字段。數字可以改變,所以我可以有一行0,0,1,1,1,2我想顯示數字5,但下一行可能是1,1,2,6,10,所以我需要20來顯示在總列 – 2013-04-08 11:01:40
它是否適用於您的情況? – TechDo 2013-04-08 11:04:36
大廈@ techdo的答案(和請給予好評或接受他的答案 - 我做的是充實了這一點),這裏有一個辦法做到這一點:
首先,建立實施@ techdo的功能代碼:
CREATE OR REPLACE FUNCTION SUM_CSV(pin_Csv IN VARCHAR2)
RETURN NUMBER
DETERMINISTIC
IS
strFormula VARCHAR2(1000);
nResult NUMBER;
BEGIN
strFormula := REPLACE(pin_Csv, ',', '+');
EXECUTE IMMEDIATE 'BEGIN :out := ' || strFormula || '; END;' USING OUT nResult;
RETURN nResult;
END SUM_CSV;
請注意,函數必須是確定性的 - 也就是說,對於給定的輸入值,它總是會產生相同的結果。
然後創建含有調用函數SUM_CSV虛擬列的表:
CREATE TABLE csv_test
(text VARCHAR2(1000),
total NUMBER AS (SUM_CSV(text))); -- virtual column
現在,插入到表:
INSERT INTO CSV_TEST(TEXT) VALUES('1,2,3,4,5');
提交插入,然後取這些值回:
SELECT * FROM CSV_TEST;
而且你得到
TEXT TOTAL
1,2,3,4,5 15
分享和享受。
哪一個是您的數據庫? – TechDo 2013-04-08 10:54:57
你想告訴你有2'0',3'''和'1''嗎?如果是這樣,我會用逗號分隔單元格並轉置數據。然後,在記錄上運行一個數據透視表。你問的這個問題很好。如果你願意,我可以擴展更多關於如何做到這一點。 – Jerry 2013-04-08 10:57:56
你好,謝謝你的反應,它不完全是我需要的,我希望從oracle數據庫執行此操作並將其顯示爲字段。數字可以改變,所以我可以有一行0,0,1,1,1,2我想顯示數字5,但下一行可能是1,1,2,6,10,所以我需要20來顯示在總列 – 2013-04-08 11:08:36