sqlserver积累Word文件下载.docx
- 文档编号:21696090
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:19.40KB
sqlserver积累Word文件下载.docx
《sqlserver积累Word文件下载.docx》由会员分享,可在线阅读,更多相关《sqlserver积累Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
(
selectrow_number()over(orderbyadesc)asid,afrom#a
)
select@num=afromda1whereid=@i
select@sql=@sql+@num+char(10)+'
union'
+char(10)
set@i=@i+1
end
print@sql
sqlserver游标从sysobjects提取表明用于查询
DECLARE@INVARCHAR(20)
SET@I='
V'
DECLAREMYcursorcursor
forselectnamefromsysobjectswhereXTYPE='
andNAMELIKE'
%'
+@I+'
--
--打开游标
OPENMYcursor
declare@namenvarchar(50)
FETCHNEXTFROMMYcursorINTO@name
WHILE@@FETCH_STATUS=0
BEGIN
--PRINT@NAME
--EXEC'
SELECTCOUNT(*)FROM+'
@NAME'
--select*fromsysobjectswherename=@name
DECLARE@SQLNVARCHAR(2000)
DECLARE@TBNAMEVARCHAR(50)
DECLARE@NUMINT
--EXEC('
SELECTCOUNT(*)FROM'
+@NAME)
--set@SQL='
SELECTCOUNT(*),NAMEFROM'
+@NAME+'
SYSOBJECTSWHERENAME='
--SELECTNAMEFROMSYSOBJECTSWHERENAME=@NAME
SET@SQL='
insertinto#TTSELECTCUN,NAMEFROM
(SELECTCOUNT(*)CUNFROM'
)A,SYSOBJECTSBWHERENAME='
--SET@SQL='
SELECTCUN,NAMEINTO#TTFROM
--(SELECTCOUNT(*)CUNFROM'
EXECSP_EXECUTESQL@SQL
SELECTDISTINCT*FROM#TT
END
CLOSEMYcursor
DEALLOCATEMYcursor
获取字符串中子串出现的次数
2011年9月6日
16:
59
有字符'
a....a...a..a.a.........a'
要变成'
a.a.a.a.a.a'
写出sql语句()
declare@chrvarchar(1000)
declare@chr2varchar(1000)
declare@chr3varchar(1000)
declare@numint
set@num=0
set@chr3='
a.'
declare@iint
set@chr='
set@chr2='
a'
set@i=len(@chr)-len(replace(@chr,@chr2,'
))
while@num<
=@i-1
set@chr3=@chr3+'
set@num=@num+1
end
printleft(@chr3,len(@chr3)-1)
2011年9月7日
19
declare@roomidasvarchar(10),@seatsasint,
@eventidasint,@attendeesasint;
declare@resoulttable(roomidvarchar(10),eventidint);
declarecroomscursorfast_forwardfor
selectroomid,seatsfromrooms
orderbyseats,roomid;
declareceventscursorfast_forwardfor
selecteventid,attendeesfromevents
orderbyattendees,eventid;
opencrooms;
opencevents;
fetchnextfromceventsinto@eventid,@attendees;
while@@fetch_status=0
begin
fetchnextfromcroomsinto@roomid,@seats;
while@@fetch_status=0and@seats<
@attendees
if@@fetch_status=0
insertinto@resoult(roomid,eventid)values(@roomid,
@eventid);
else
begin
raiserror('
notenoughroomsforevents'
16,1);
break;
end
end
closecrooms;
closecevents;
deallocatecrooms;
deallocatecevents;
selectroomid,eventidfrom@resoult;
判断null
2011年9月16日
17:
15
字段对应条件的值:
selectisnull(
isnull((select电话fromt1where条件),
(select电话fromt2where条件)),
(select电话fromt3where条件))
查整个字段是否为全空
selectcasewhen(
selectsum(casewhen电话isnotnullthen1else0end)fromt1
)=0then'
空字段'
else'
非全空字段'
查看表中字段的数据类型
16
selecta.name,b.name,c.name
fromsysobjectsainnerjoinsyscolumnsb
ona.id=b.idanda.xtype='
U'
innerjoinsystypesc
onb.xtype=c.xusertype
wherea.name='
RSR_SP_PROFIT'
缓存
2011年9月19日
14:
17
sys.dm_exec_cached_plans
sys.dm_exec_plan_attributes
sys.dm_exec_sql_text
sys.dm_exec_cached_plan_dependent_objects
源文档<
_-----------------
26
SELECTtable.*,row_number()over(partitionby存货编号orderby日期)asno,m.结余
FROMTAVBE,(SELECT入数量-出数量
结余
FROMTABLE)
m
这是我原来的程序,table.*中有入数量这一个元素,并且我没有对他做任何改动,所以他的值不会变,结余是用m这个新的表给出的,所以作为结果,只是比原来的表多了一行no即编号和结余,我觉得满足了你的入库数量不变的要求
胜负问题
2011年9月20日
13:
47
createtabletmp(rqvarchar(10),shengfunchar
(1))
insertintotmpvalues('
2005-05-09'
'
胜'
负'
2005-05-10'
胜负
2005-05-0922
2005-05-1012
selectrq,sum(casewhenshengfu='
then1else0end)胜,sum(casewhenshengfu='
then1else0end)负
fromtmpgroupbyrq
select*from(
(select*fromtmp)binnerjoin
(selectrq,'
=count(*)fromtmpwhereshengfu='
groupbyrq)a
ona.rq=b.rq)
把相同趋势的分组
48
如果上一年比本年度的数据增加了,就是up减少了down然后把数据按照相同趋势发分组求出
原数据
Yearprice
2004
4546.81
2001
5560.30
1998
2099.60
2007
4346.74
2008
4125.23
2005
3263.33
2002
7628.06
1999
5706.65
2000
5695.86
2003
6919.66
2009
2740.33
2006
3868.34
处理后。
NULL
up
down
--先计算出当年的price与上一年的差额的标记。
selecta.year,a.price,sign(a.price-(selecttop1pricefromypricebwhereb.year<
a.yearorderbyyeardesc))assgn
into#t
fromypricea
sign函数在输入正时返回1,0返回0输入负数返回-1对于null返回null。
sgn列实际表示当年的趋势,这时候,你相对有相同趋势的连续年份分组,为此,你需要分组因子。
--用于表示该分组的一个值。
趋势不同与当年趋势的组早月份可以做为分组因子。
如果你考虑一下,就会发现对于相同趋势的连续月份来说,这个值是相同的。
selectyear,sgn,(selectmin(year)from#tbwhereb.year>
a.yearanda.sgn<
>
b.sgn)grp
into#tb
from#ta
null是因为在该月份表示一个未知的趋势。
按照sgn和grp分组,返回min(year)作为范围的开始,返回max(year)做饭范围的结束,并使用case表达式把sgn值转化到具体描述性的趋势表现形式。
selectmin(year),max(year),casesgnwhen-1then'
down'
when1then'
up'
when0then'
same'
whennullthen'
unkown'
endtrendfrom#tb
groupbysgn,grp
根据关键字查找存储过程
2011年10月18日
14
selectname
fromsysobjectso,syscommentss
whereo.id=s.id
andtextlike'
%期货%'
ando.xtype='
P'
查询指定表的对象
2011年11月2日
9:
40
select*from(selectt=OBJECT_NAME(parent_obj),*fromsys.sysobjects)a
wheret='
t1'
逐年求
withdata1as
(SELECT
PEQ0055_001=YEAR(DECLAREDATE)--年度
PEQ0055_002=FTYPE---融资类型
PEQ0055_003=CAST(count(panycode)ASVARCHAR(20))----统计样本数
PEQ0055_004=YEAR(DECLAREDATE)--样本年度
PEQ0055_005=CAST(sum(Issueexp3)/(casewhensum(Issueexp2)=0thennullelsesum(Issueexp2)end)*100ASnumeric(9,4))----承销费用占发行费用比
PEQ0055_006='
--备注
PEQ0055_TMStamp=CAST(DBO.MAXVALUE(MAX(A.TMSTAMP),MAX(B.TMSTAMP))ASBIGINT)--更新标识
FROMSQL166.FCDB.DBO.SIBASEINFOA,SQL166.FCDB.DBO.ISSUEEXPB
WHEREA.COMPANYCODE=B.COMPANYCODEANDA.DECLAREDATE=B.Issueexp1ANDFTYPEIN(1,2,3)
GROUPBYYEAR(DECLAREDATE),FTYPE
SELECTA.PEQ0055_001,A.PEQ0055_002,A.PEQ0055_003,B.PEQ0055_004,B.PEQ0055_005,A.PEQ0055_006,A.PEQ0055_TMSTAMP
FROM(SELECTPEQ0055_001,PEQ0055_002,PEQ0055_003,PEQ0055_004,PEQ0055_005,PEQ0055_006,PEQ0055_TMSTAMP,(SELECTMAX(PEQ0055_001)FROM(SELECT*FROMDATA1WHEREPEQ0055_002=01)AWHEREA.PEQ0055_001<
B.PEQ0055_001ANDCAST(PEQ0055_005ASNUMERIC)<
0)YBND
FROM(SELECT*FROMDATA1WHEREPEQ0055_002=01)BWHERECAST(PEQ0055_005ASNUMERIC)=0)A,(SELECT*FROMDATA1WHEREPEQ0055_002=01)BWHEREA.YBND=B.PEQ0055_001
UNIONALL
SELECT*FROM(SELECT*FROMDATA1WHEREPEQ0055_002=01)BWHERECAST(PEQ0055_005ASNUMERIC)<
UNIONALL
FROM(SELECTPEQ0055_001,PEQ0055_002,PEQ0055_003,PEQ0055_004,PEQ0055_005,PEQ0055_006,PEQ0055_TMSTAMP,(SELECTMAX(PEQ0055_001)FROM(SELECT*FROMDATA1WHEREPEQ0055_002=02)AWHEREA.PEQ0055_001<
FROM(SELECT*FROMDATA1WHEREPEQ0055_002=02)BWHERECAST(PEQ0055_005ASNUMERIC)=0)A,(SELECT*FROMDATA1WHEREPEQ0055_002=02)BWHEREA.YBND=B.PEQ0055_001
SELECT*FROM(SELECT*FROMDATA1WHEREPEQ0055_002=02)BWHERECAST(PEQ0055_005ASNUMERIC)<
FROM(SELECTPEQ0055_001,PEQ0055_002,PEQ0055_003,PEQ0055_004,PEQ0055_005,PEQ0055_006,PEQ0055_TMSTAMP,(SELECTMAX(PEQ0055_001)FROM(SELECT*FROMDATA1WHEREPEQ0055_002=03)AWHEREA.PEQ0055_001<
FROM(SELECT*FROMDATA1WHEREPEQ0055_002=03)BWHERECAST(PEQ0055_005ASNUMERIC)=0)A,(SELECT*FROMDATA1WHEREPEQ0055_002=03)BWHEREA.YBND=B.PEQ0055_001
SELECT*FROM(SELECT*FROMDATA1WHEREPEQ0055_002=03)BWHERECAST(PEQ0055_005ASNUMERIC)<
FROM(SELECTPEQ0055_001,PEQ0055_002,PEQ0055_003,PEQ0055_004,PEQ0055_005,PEQ0055_006,PEQ0055_TMSTAMP,(SELECTMAX(PEQ0055_001)FROM(SELECT*FROM#DATA1WHEREPEQ0055_002=03)AWHEREA.PEQ0055_001<
FROM(SELECT*FROM#DATA1WHEREPEQ0055_002=03)BWHERECAST(PEQ0055_005ASNUMERIC)=0)A,(SELECT*FROM#DATA1WHEREPEQ0055_002=03)BWHEREA.YBND=B.PEQ0055_001
UNION
SELECT*FROM(SELECT*FROM#DATA1WHEREPEQ0055_002=03)B---WHERECAST(PEQ0055_005ASNUMERIC)<
FROM(SELECTPEQ0055_001,PEQ0055_002,PEQ0055_003,PEQ0055_004,PEQ0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlserver 积累