在ireport中怎么進行模糊查詢,sql陳述句怎么寫??
uj5u.com熱心網友回復:
like '%'+$P{param}+'%'uj5u.com熱心網友回復:
LIKE '%'||$P{param}||'%' 我是這樣寫的可以uj5u.com熱心網友回復:
同問,我也遇到了這個問題。樓主找到方法了嗎?uj5u.com熱心網友回復:
Oracle中一個列轉行例子-- a 1|2|3
轉成:
a 1
a 2
a 3
create table test( a1 varchar2(10),b1 varchar2(10));
insert into test(a1,b1) values('a','1,2,3');
commit;
--方法1`
select a1,regexp_substr(b1,'[^,]+',1,level)
from test
connect by level <= length(b1)-length(replace(b1,','))+1
--方法2
select a1,regexp_substr(b1,'[^,]+',1,level)
from test
connect by level <=length(regexp_replace(b1,'[^,]+')) +1
--方法3
select a1,regexp_substr(b1,'[^,]+',1,level)
from test
connect by level <=regexp_count(b1,',')+1
uj5u.com熱心網友回復:
--如果統計一天24小時每個小時的資料量--創建測驗表
create table hour_test (add_hour date);
--回圈插入測驗資料
declare n number;
begin
n:=0;
while n<50000 loop
n :=n+1;
insert into hour_test
select * from (
select rownum rn,to_date('2017-01-01', 'yyyy-mm-dd hh:mi:ss')+ rownum/24 add_hour
from dual
connect by rownum<25
) a
where a.rn =(select round(dbms_random.value(1,24)) from dual);
end loop;
commit;
end ;
--查詢結果
select to_char(add_hour,'hh24') hour,count(*) n from hour_test
group by to_char(add_hour,'hh24')
order by to_char(add_hour,'hh24');
uj5u.com熱心網友回復:
一些Tableau開發總結1.占比: 相應度量欄位上,添加表計算
計算型別選擇"總額百分比",值匯總范圍選擇"表(向下)"
可參考:各專業公司T+0產品客戶情況統計及分析-注冊時長(表格)
2.面積圖中的注冊時長最高點和最低點
(1)添加注冊時長(月) (度量)
CUST_CNT_MONTH: {FIXED [客戶注冊時長(月)] : SUM([CUST_CNT])}
(2)添加最大值和最小值 (度量)
{EXCLUDE [客戶注冊時長(月)] : MAX({FIXED [客戶注冊時長(月)] : SUM([CUST_CNT])})}
{EXCLUDE [客戶注冊時長(月)] : MIN({FIXED [客戶注冊時長(月)] : SUM([CUST_CNT])})}
(3)添加計算欄位,取最高點和最低點 (度量)
IF [CUST_CNT_MONTH] = [CUST_CNT_MAX] OR [CUST_CNT_MONTH] = [CUST_CNT_MIN]
THEN [CUST_CNT_MONTH] ELSE NULL END
(4)以計算欄位為度量繪制一個圖,選擇"圓",然后點擊雙軸
可參考:各專業公司T+0產品客戶情況統計及分析-注冊時長(折線圖)
3.分級別統計問題(以年齡分布為例說明)
(1)新增計算欄位(維度)AGE_LEVEL(添加級別定義)
IF [AGE] < 18 THEN '<18'
ELSEIF [AGE] >= 18 AND [AGE] < 25 THEN '[18,25)'
ELSEIF [AGE] >= 25 AND [AGE] < 30 THEN '[25,30)'
ELSEIF [AGE] >= 30 AND [AGE] < 35 THEN '[30,35)'
ELSEIF [AGE] >= 35 AND [AGE] < 40 THEN '[35,40)'
ELSEIF [AGE] >= 40 AND [AGE] < 45 THEN '[40,45)'
ELSE '>=45' END
(2)添加各年齡客戶數量計算欄位(度量)
CUST_CNT_AGE: CUS_CNT
(3)對CUST_CNT_AGE添加表計算: 獲取年齡層占比
計算型別選擇"總額百分比",值匯總范圍選擇"表(向下)"
(4)統計各年齡階段人數的數量 度量)
CUST_CNT_TOTAL: {EXCLUDE [AGE_LEVEL] : SUM([CUST_CNT])}
(5)添加男性/女性人數計算欄位(度量)
CUST_CNT_FEMALE: IF [GENDER] = '女' THEN [CUST_CNT] ELSE 0 END
CUST_CNT_MALE: IF [GENDER] = '男' THEN [CUST_CNT] ELSE 0 END
(6)新增兩個度量計算欄位(度量),分別統計各年齡層男性/女性人數
CUST_CNT_AGE_FEMALE:{FIXED [AGE_LEVEL] : SUM([CUST_CNT_FEMALE])}
CUST_CNT_AGE_MALE:{FIXED [AGE_LEVEL] : SUM([CUST_CNT_MALE])}
(7)新增兩個度量計算欄位(添加男性/女性人數占比)
CUST_CNT_FEMALE_PERCENT: [CUST_CNT_AGE_FEMALE] / [CUST_CNT_TOTAL]
CUST_CNT_MALE_PERCENT: [CUST_CNT_AGE_MALE] / [CUST_CNT_TOTAL]
可參考:各專業公司T+0產品客戶情況統計及分析-注冊時長(折線圖)
--DATETRUNC的使用
昨日: DATETRUNC('day',NOW()-1)
昨日資料: [統計日期] < DATETRUNC('day',NOW())
最大日期: [統計日期] < DATETRUNC('day',{FIEXD: MAX(統計日期)})
選擇日期: [統計日期] = [資料日期CA01_3]
--NOW() 年月日+時分秒
--TODAY() 年月日
--添加{}使聚合函式和非聚合函式匹配: [統計日期] = {MAX([統計日期])}
--默認取最新日期
IF [統計日期] = {MAX([統計日期])} THEN 'Last Date'
ELSE
STR(DATEPART('year',[統計日期]))+'-'+STR(DATEPART('month',[統計日期]))+'-'+STR(DATEPART('day',[統計日期]))
END
--默認取最新日期2
創建計算欄位1:{FIXED [Time]: max(year([Date])*100+month([Date]))} --[Month]
創建計算欄位2:year([Date])*100+month([Date]) --[latest month]
創建字串引數: [是否最新日期],默認值為'否'
創建計算欄位3: [是否最新日期] = "否" or [Month] = [latest month]
然后將[統計日期]和[是否最新日期] 拖到篩選器中.
--合計值排序:
IF [遷徙路徑] = '合計' THEN 1 ELSE 0 END; 接著編輯[遷徙路徑]的排序規則,下來選擇"合計值排序"欄位,點擊"最小值"
--負值突出顯示:
IF LEFT([欄位],1) = '-' THEN 1 ELSE 0 END 接著把"負值突出顯示"欄位拖放到顏色,編輯顯示目標顏色即可
重復值高亮顯示: IF { FIEXD [計算欄位]: COUNT([計算欄位])} > 1 THEN 1 ELSE 0 END
--負值去掉-,換成()顯示:
IF LEFT([欄位],1) = '-' THEN '('+REPLACE([欄位],'-','')+')' ELSE [欄位] END 替換掉之前的欄位
uj5u.com熱心網友回復:
like '%'||$P{param}||'%' 試試吧轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/52467.html
標籤:基礎和管理
