当前位置: 首页 > news >正文

品牌网站建设内容框架高端网站建设免费分析

品牌网站建设内容框架,高端网站建设免费分析,东莞网站包年优化,做生鲜的网站前言#xff1a;由于很多业务表因为历史原因或者性能原因#xff0c;都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值#xff08;具体结构见下表#xff09;。这种模式下#xff0c;应用常常需要将这个列依据分隔符进行分割#xff0c;并得到列转行的结果…前言 由于很多业务表因为历史原因或者性能原因都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值具体结构见下表。 这种模式下应用常常需要将这个列依据分隔符进行分割并得到列转行的结果。 表数据 ID  Value 1 tiny,small,big 2 small,medium 3 tiny,big 期望得到结果 ID Value 1 tiny 1 small 1 big 2 small 2 medium 3 tiny 3 big 正文 www.2cto.com   #需要处理的表 create table tbl_name (ID int ,mSize varchar(100)); insert into tbl_name values (1,tiny,small,big); insert into tbl_name values (2,small,medium); insert into tbl_name values (3,tiny,big); #用于循环的自增表 create table incre_table (AutoIncreID int); insert into incre_table values (1); insert into incre_table values (2); insert into incre_table values (3); select a.ID,substring_index(substring_index(a.mSize,,,b.AutoIncreID),,,-1)  from  tbl_name a join incre_table b on b.AutoIncreID (length(a.mSize) - length(replace(a.mSize,,,))1) order by a.ID; 原理分析 这个join最基本原理是笛卡尔积。通过这个方式来实现循环。 以下是具体问题分析 length(a.Size) - length(replace(a.mSize,,,))1  表示了按照逗号分割后改列拥有的数值数量下面简称n join过程的伪代码 根据ID进行循环 { 判断i 是否 n { 获取最靠近第 i 个逗号之前的数据 即 substring_index(substring_index(a.mSize,,,b.ID),,,-1) i i 1  } ID ID 1  }  www.2cto.com   总结 这种方法的缺点在于我们需要一个拥有连续数列的独立表这里是incre_table)。并且连续数列的最大值一定要大于符合分割的值的个数。 例如有一行的mSize 有100个逗号分割的值那么我们的incre_table 就需要有至少100个连续行。 当然mysql内部也有现成的连续数列表可用。如mysql.help_topic help_topic_id 共有504个数值一般能满足于大部分需求了。 改写后如下: select a.ID,substring_index(substring_index(a.mSize,,,b.help_topic_id1),,,-1)  from  tbl_name a join mysql.help_topic b on b.help_topic_id (length(a.mSize) - length(replace(a.mSize,,,))1) order by a.ID; 问题 有个表中的一个字段Author如下ID Author1 张三2 张三,李四3 王五4 李四5 张三,李四,王五现在想查询出这样的结果Author Count张三 3李四 3王五 2sql server 解答 if object_id(Tempdb..#Num) is not null drop table #Num select top 100 IDIdentity(int,1,1) into #Num from syscolumns a,syscolumns b Select Authorsubstring(a.Author,b.ID,charindex(,,a.Author,,b.ID)-b.ID),count(*) from table1 a,#Num b where charindex(,,,a.Author,b.ID)b.IDgroup by substring(a.Author,b.ID,charindex(,,a.Author,,b.ID)-b.ID);table1替换成你自己表名top 100 那个100你就替换个稍微大点的数吧 转载于:https://www.cnblogs.com/buzi521/p/4519005.html
http://www.sadfv.cn/news/80313/

相关文章:

  • 文化局网站建设方案南京网站建设价位
  • 周到的网站建站广州海珠区邮编
  • 网站建设技术中心网站做流量是怎么回事
  • 聊城专业做网站青岛城乡建筑设计院有限公司
  • WordPress网站子目录访问个人网站注册名称
  • 太原网站优化推广上海专业的网站建设公司
  • 芙蓉区建设局网站建网站服务商
  • 西宁市城乡规划和建设局网站wordpress太慢
  • 网站的优化与网站建设有关吗手游开发
  • 网站建设前准备自己设置网站
  • it公司怎么在国外网站做宣传北京网络网站建设公司
  • 有没有网站做悬赏的成品短视频软件源码
  • 云网站 制作火车头采集器发布wordpress
  • 平台类网站建设公司西安官网seo方法
  • 头皮痒 脱发严重怎么办外贸seo是什么意思
  • 网站建设实训该写哪些内容网站设计app
  • 陕西省医院信息化建设规范与测评标准—网站建设评分标准与方法百度推广开户联系方式
  • php网站怎么搭建环境安阳淘宝网站建设
  • vue做企业网站搞外贸一般是干什么的
  • 百度提交网站收录地址搜索网排名
  • 情侣网站建设策划书刘涛给孩子网站做的广告
  • 手工木雕网站建设策划书湖南建设网招标公告
  • 新手搭建做网站鞍山网站制作人才招聘
  • 海外网站服务器网址弹出全屏视频网站怎么做
  • wordpress怎么关注站点网站推广的效果
  • 上海做网站优化哪家好站长推广网
  • 网站制做阿里巴巴网站是怎么做的
  • 威海外贸网站建设电话丽水市莲都建设分局网站
  • 公司海外网站建设英文网站建设需要注意的五点问题
  • 易县网站建设域名服务器搭建