中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

數(shù)據(jù)倉庫中復(fù)雜報表SQL語句的寫法是什么

數(shù)據(jù)倉庫中復(fù)雜報表SQL語句的寫法是什么,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供保定企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為保定眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

在數(shù)據(jù)倉庫的基本報表制作過程中,通常會使用SQL作為數(shù)據(jù)源,可是普通的SQL實在不適合處理一些較為復(fù)雜的邏輯判斷;一般而言,待查詢的數(shù)據(jù)類型主要包括日期型、數(shù)字型、字符串這三類數(shù)據(jù)類型;在報表查詢界面前段,實際上會對查詢的數(shù)據(jù)作一些缺省處理,例如有些字段可輸可不輸,輸入的字段需要按照輸入的內(nèi)容進行查詢,而未輸入的字段通常會選擇忽略該條件的存在,如何判斷該字段是否輸入了呢,當(dāng)然是針對這些未輸入的字段提供一些缺省值了,例如某個數(shù)字類型的字段未輸入,則賦一個缺省值-1,某個字符串字段未輸入,則賦一個缺省值為’ ‘,某個日期未輸入,則賦一個缺省值為SYSDATE;這個時候只要在SQL中針對不同的缺省值和應(yīng)該輸入的值進行處理就OK了。

當(dāng)然當(dāng)更加復(fù)雜的查詢邏輯實在不適合用SQL處理時,最好選擇使用存儲過程的方法了;其次過于復(fù)雜的SQL可能會帶來數(shù)據(jù)庫性能問題,因此這些基于SQL的報表最好不要在大型數(shù)據(jù)表上操作。

下面是構(gòu)造了一個包含以上三種數(shù)據(jù)類型的數(shù)據(jù)表,并填充了一些測試數(shù)據(jù):

CREATE TABLE TestReportParameter
(
  VarcharField     VARCHAR2(20),
  NumberField      NUMBER(10,0),
  DateField        DATE 
);

INSERT INTO TestReportParameter VALUES('a',1,SYSDATE-1);
INSERT INTO TestReportParameter VALUES('b',2,SYSDATE);
INSERT INTO TestReportParameter VALUES('c',3,SYSDATE+2);
INSERT INTO TestReportParameter VALUES('d',4,SYSDATE-2);
COMMIT;

處理的秘密在于對缺省值和輸入值之間做一個判斷,保持任何一種值的存在為TRUE即可。

對于單值數(shù)據(jù)的處理比較簡單,參看下面腳本

SELECT *
  FROM TestReportParameter
 WHERE (' ' = &VarcharField OR VarcharField = &VarcharField)
   AND (-1 = &NumberField OR NumberField = &NumberField)

對于多選值的處理則一定要使用DECODE函數(shù)才能避免錯誤的發(fā)生,處理的邏輯同上

SELECT *
  FROM TestReportParameter
 WHERE (
         ' '=DECODE(&VarcharField,' ',' ',&VarcharField)
         OR
         VarcharField IN (&VarcharField)
       )
   AND (
         -1=DECODE(&NumberField,-1,-1,&NumberField)
         OR
         NumberField IN (&NumberField)
       )

關(guān)于數(shù)據(jù)倉庫中復(fù)雜報表SQL語句的寫法是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

本文標(biāo)題:數(shù)據(jù)倉庫中復(fù)雜報表SQL語句的寫法是什么
轉(zhuǎn)載來于:http://www.rwnh.cn/article44/jiphee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站設(shè)計、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
昌都县| 正安县| 东城区| 嘉义县| 焉耆| 图片| 福海县| 武夷山市| 平谷区| 望奎县| 定南县| 广水市| 宁国市| 邵阳市| 江北区| 通榆县| 普陀区| 宜兰市| 邵阳县| 正阳县| 铜陵市| 阿勒泰市| 玉门市| 河北区| 阳东县| 大连市| 健康| 修水县| 时尚| 绥宁县| 邵阳县| 工布江达县| 新化县| 永泰县| 琼结县| 石阡县| 苍溪县| 中方县| 汶上县| 万安县| 桑植县|