仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 721|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL编程:t-sql建一时表,处置字符串

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:23:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。一时表|字符串declare@str1varchar(100),@str2varchar(100),@str3varchar(100),@strvarchar(500)
set@str1=aada,bbbf,ccc,
set@str2=ddd,aaaaaa,fdsa
set@str3=vvvvvv,aaabbbb
set@str=fds,bbbf,eee,ddd,fff,hhhfg,dddde
如今:
把@str1拆分红aada,bbbf,ccc三个元素,个中bbbf在@str里呈现过
把@str2拆分红ddd,aaaaaa,fdsa三个元素,个中ddd在@str里也呈现过
把@str3拆分红vvvvvv,aaabbbb两个元素,可是没有任何元素在@str里呈现过
叨教我怎样用程序完成如许一个了局
实在实践成绩是如许的
我有一个数据表,里有个字段classid
个中一条记录的数据,好比是:aada,bbbf,ccc
如今要失掉如许一个了局集,将classid依照下面的拆分体例拆分,失掉的数据,在@str里呈现过(@str是外界传过去的一个参数)的纪录找出来,叨教我该怎样做?
---------------------------------------------------------------

declare@strvarchar(500)

set@str=fds,bbbf,eee,ddd,fff,hhhfg,dddde

createtable你的表(classidvarchar(100))
insert你的表values(aada,bbbf,ccc)
insert你的表values(ddd,aaaaaa,fdsa)
insert你的表values(vvvvvv,aaabbbb)

createtable#一时表(avarchar(100))
declare@aaavarchar(8000)
set@aaa=insert#一时表select*from(select+replace(@str,,,asstrunionallselect)+)a
exec(@aaa)

select*from你的表whereexists(select1from#一时表where,+你的表.classid+,like%,+a+,%)
go

droptable你的表,#一时表
---------------------------------------------------------------

createtable#t(
idvarchar(10))
declare@strvarchar(300)
set@str=fds,bbbf,eee,ddd,fff,hhhfg,dddde
declare@iint
declare@lenint
set@i=1
set@str=fds,bbbf,eee,ddd,fff,hhhfg,dddde+,
while@i<len(@str)
begin
insert#tselectsubstring(@str,@i,charindex(,,@str,@i)-@i)
set@i=charindex(,,@str,@i)+1
end
select*from数据表A,#tBwherecharindex(B.id,A.classid)>0


---------------------------------------------------------------

createtablet(classidvarchar(100))
inserttvalues(aada,bbbf,ccc)
inserttvalues(ddd,aaaaaa,fdsa)
inserttvalues(vvvvvv,aaabbbb)




declare@strvarchar(500)

set@str=fds,bbbf,eee,ddd,fff,hhhfg,dddde

selecttop500identity(int,1,1)asidinto#tfromsysobjects

selectdistinctA.*fromtA,
(selectsubstring(,+string+,,id+1,charindex(,,,+string+,,id+1)-id-1)asstring
from(select@strasstring)B,#tc
wheresubstring(,+string+,,id,8000)like,_%)D
wherecharindex(,+string+,,,+classid+,)>0

droptable#t

把#t建成流动表,更快。

mysqld进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。
精灵巫婆 该用户已被删除
沙发
 楼主| 发表于 2015-1-19 10:29:42 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-24 15:01:23 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
只想知道 该用户已被删除
地板
发表于 2015-2-1 17:32:15 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-7 13:12:55 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
莫相离 该用户已被删除
6#
发表于 2015-2-21 22:38:48 | 只看该作者
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
不帅 该用户已被删除
7#
发表于 2015-3-6 22:23:52 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
柔情似水 该用户已被删除
8#
发表于 2015-3-13 22:10:01 | 只看该作者
一个是把SQL语句写到客户端,可以使用DataSet进行加工;
第二个灵魂 该用户已被删除
9#
发表于 2015-3-20 20:56:47 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表