SQL中变参数替换方法
当您在工作中满足需求时,需要大量参数,比如SQL,复制代码代码如下所示:
选择
FF。fundsc | |-| | FF。fundtzfs | |-| | FF。fundcjfl | |-| | FF。fundonefl | |-| | ff.fundtowfl类,
Sf.scode,取代(sf.fund5,型证券投资基金',')5,sf.fund4,sf.fund10,
(选择to_date(tradedate,'yyyy-mm-dd)从sdc_fundnetassetvalue范围= sf.scode和tradedate在哪里
(选择最大(tradedate)从sdc_fundnetassetvalue哪里范围= sf.scode和to_date(tradedate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和tradedate <= 20120801)和rownum < 2)trdatedate,
(选择unitvalue从sdc_fundnetassetvalue范围= sf.scode和tradedate在哪里
(选择最大(tradedate)从sdc_fundnetassetvalue哪里范围= sf.scode和to_date(tradedate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和tradedate <= 20120801)和rownum < 2)fejz,
(选择accumulatedunitvalue从sdc_fundnetassetvalue范围= sf.scode和tradedate在哪里
(选择最大(tradedate)从sdc_fundnetassetvalue哪里范围= sf.scode和to_date(tradedate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和tradedate <= 20120801)和rownum < 2)feljjz,
(选择从哪里f30004_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2)gqyzjzzzl,
(选择从哪里f30006_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2)gqyyjzzzl,
解码((选择从哪里f30007_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30007_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 '))gqsgyjzzzl,
row_number()在(分区由FF。fundsc | |-| | FF。fundtzfs | |-| | FF。fundcjfl | |-| | FF。fundonefl | |-| | FF。fundtowfl)
为了解码((选择从哪里f30007_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30007_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 ')降序)SGY),
解码((选择从哪里f30008_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30008_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 '))gqbnjzzzl,
row_number()在(分区由FF。fundsc | |-| | FF。fundtzfs | |-| | FF。fundcjfl | |-| | FF。fundonefl | |-| | FF。fundtowfl)
为了解码((选择从哪里f30008_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30008_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 ')降序)BN),
解码((选择从哪里f30017_30003 si_fund_30003 f_fundcode = sf.scode和f_type = 0和f_tradingdate在)
(选择最大(f_tradingdate)从si_fund_30003哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30017_30003(从si_fund_30003选择(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30003哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 '))今年,
row_number()在(分区由FF。fundsc | |-| | FF。fundtzfs | |-| | FF。fundcjfl | |-| | FF。fundonefl | |-| | FF。fundtowfl)
为了解码((选择从哪里f30017_30003 si_fund_30003 f_fundcode = sf.scode和f_type = 0)
(选择最大(f_tradingdate)从si_fund_30003哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30017_30003(从si_fund_30003选择(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30003哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 ')降序)约),
解码((选择从哪里f30009_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30009_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 '))gqynjzzzl,
row_number()在(分区由FF。fundsc | |-| | FF。fundtzfs | |-| | FF。fundcjfl | |-| | FF。fundonefl | |-| | FF。fundtowfl)
Order by decode ((select f30009_30002 from si_fund_30002 where f_fundcode=sf.scode and f_type=0 and)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30009_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 ')降序)gqyn),
解码((选择从哪里f30010_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30010_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 '))gqlnjzzzl,
row_number()在(分区由FF。fundsc | |-| | FF。fundtzfs | |-| | FF。fundcjfl | |-| | FF。fundonefl | |-| | FF。fundtowfl)
为了解码((选择从哪里f30010_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30010_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 ')降序)gqln),
解码((选择从哪里f30011_30002 si_fund_30002 f_fundcode = sf.scode和f_type = 0和f_tradingdate在)
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),
空,to_char,f30011_30002(选择si_fund_30002哪里(f_fundcode = sf.scode和f_type = 0和f_tradingdate在
(选择最大(f_tradingdate)从si_fund_30002哪里f_fundcode = sf.scode和to_date(f_tradingdate,'yyyymmdd)=(to_date(20120801,'yyyymmdd)- 10)和f_tradingdate <= 20120801)和rownum < 2),'fm999999990.9999 '))gqsnjzzzl
从
(选择
B.scode,b.fund5,b.fund4,b.fund10
从
sdc_fundbase B左连接在b.scode = a.scode和b.mktcode = a.mktcode和b.fund49 = a.stype sdc_security
哪里
B.scode(选择t.fundcode从fund_fundcategoryone T(t.fundtzfs =打开或t.fundtzfs = '关闭')和t.fundonefl!=货币市场基金和t.fundonefl!=交易
和(a.enddate > = to_date(20120801,'yyyy-mm-dd)或a.enddate是null或a.enddate = to_date(19000101,'yyyy-mm-dd '))
和a.stype(6,7)在秩序的范围
SF)
左连接fund_fundcategoryone FF在sf.scode = ff.fundcode和ff.fundonefl =交易!
这是非常复杂的,不小心介绍。这时,20120801点需要转换成参数。写参数的唯一方法就是杀了我。下面的方法可以节省大量的工作,并在大多数内部函数中修改选择。
B.scode,b.fund5,b.fund4,b.fund1020120801 tdate
从
20120801 tdate替代变量,使传入的参数表示在tdate。