仓酷云

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

[学习教程] 在Sql Server中将字符串支解成表格数据示例

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:07:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
mysql的原来开发者又开发了MariaDB,MariaDB适合用来替代mysql吗好比我们有一个字符串
declare@appNamevarchar(50)
select@appName=UserID=admin,Account=ABC

然后我们要以","为行支解标记,以"="为列支解标记将@appName支解成多行两列的格表数据。
也就是将下面的@appName值支解成
NameValueUserIDadminAccountNumberABC这类格局的数据。

就教了良多伴侣,上面将最复杂的办法贴出来,供人人参考:
declare@atable(avarchar(100),bvarchar(100))
declare@svarchar(100),
@mvarchar(100),
@iint

set@s=UserID=admin,Account=ABC
set@i=charindex(,,@s)

while@i>0
begin
set@m=left(@s,@i-1)
insertinto@a(a)values(@m)
set@s=right(@s,len(@s)-@i)
set@i=charindex(,,@s)
end
insertinto@a(a)values(@s)

selectleft(a,charindex(=,a)-1)asName,right(a,len(a)-charindex(=,a))asValuefrom@a


以上sql经自己测试是准确的,人人能够做参考改成合适本人的sql语句。Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
透明 该用户已被删除
沙发
发表于 2015-1-18 12:08:05 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
板凳
发表于 2015-1-25 23:34:17 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
深爱那片海 该用户已被删除
地板
 楼主| 发表于 2015-2-4 13:54:51 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-10 01:47:28 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
爱飞 该用户已被删除
6#
发表于 2015-2-28 16:27:15 | 只看该作者
大家注意一点。如下面的例子:
山那边是海 该用户已被删除
7#
发表于 2015-3-10 04:10:40 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
金色的骷髅 该用户已被删除
8#
发表于 2015-3-17 04:54:05 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-23 20:51:08 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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