研究了两天也没有研究的很明白,但是问题做出来了,

如下表中的字段,第一级是由逗号隔开字符串,第二级是由空格隔开的字符串,现在想取空格字符串中的第几个空格前后的字符串,

所用到的工具,1、是 for xml path(''),

      2、是Stuff,必须和select 配合着使用哦这样,才能把字符串前面的字符去掉。和right的区别是设么?是stuff可以,在删除的位置可以插入新的字符串。

        3、是一个函数f_split

ALTER function [dbo].[f_split](@c varchar(2000),@split varchar(2))
returns @t table(id int, col varchar(50))
as
begin
declare @id int=0
while(charindex(@split,@c)<>0)
begin
set @id=@id+1
insert @t(id,col) values (@id,substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
set @id=@id+1
insert @t(id,col) values (@id,@c)
return
end

根据上面三个内容我摸索着写了半天,作用就是取t_Project_PartItem2这个表中,HJCS1一级用逗号隔开,二级用空格隔开,取出空格隔开里面的指定字符串哦,取第几个空格由ID来指定哦

select stuff ( (select ','+o.temp from (
/*2*/
select stuff((

select ' '+e.col from f_split(l.col,' ') as e where id<6 AND ID>3 FOR XML PATH('') ), 1, 1, '') as temp

from (select n.Col from f_split(m.HJCS1,',')/*这句作用就是按照逗号分隔开来生成表*/ as n) as l

/*2*/
)as o FOR XML PATH('')),1,1,'' ) as HJCS11 from [t_Project_PartItem2] m where nID>22 and nID<25

取第四个和第五个字符串的值结果如下。是不是很成功啊。我一个三旬老汉,还要写这个真累啊。

SQL语句,表中的列字段字符串合并 和 字符串拆分成表的更多相关文章

  1. MSSQL语句批量替换表中某列字段内容的某个字符

    UPdate 表 Set 字段名=REPLACE(字段名,'查找目标字符','要替换的字符') 比如:在Products表中把字段CharCode中含有ch-的字符全部替换为dw- UPDATE Pr ...

  2. 关于SQL语句参数中为多个带‘,’的字符串

    案例分析:画面为多分数选项,根据画面选择的分数组合=@分数,以SELECT * FROM [table_name] WHERE sore IN (@分数) 其实这不算一个复杂的问题,可能由于着急下班, ...

  3. sql一个表中两个字段合并求和

    sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total  from TABLE

  4. PowerDesigner 如何添加每个表中共用的字段及自动添加注释

    PowerDesigner 如何添加每个表中共用的字段: 有时候在创建表的时候会有一些共用的字段,但是每一张表都要去创建,这样做很麻烦,特别是这样重复的工作,稍不留意就会出现问题,实际上在PD中有这样 ...

  5. Oracle中增加,修改,删除表中的列

    有些时候,当一个表已经建好,并且已经使用后,发现需要对表结构进行修改,这个时候就要对表中的列进行增删查改操作. 为表增加新列: ALTER TABLE table_name ADD ( column_ ...

  6. SQL语句 在一个表中插入新字段

    SQL语句 在一个表中插入新字段: alter table 表名 add 字段名 字段类型 例: alter table OpenCourses add Audio varchar(50)alter ...

  7. 在数据表中添加一个字段的SQL语句怎么写

    如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识.   通用式: alter table [表名] add [字段名] 字 ...

  8. 一条SQL语句查询两表中两个字段

    首先描述问题,student表中有字段startID,endID.garde表中的ID需要对应student表中的startID或者student表中的endID才能查出grade表中的name字段, ...

  9. sql语句查询表中重复字段以及显示字段重复条数

    今天跟大家分享两条SQL语句,是关于查询某表中重复字段以及显示该字段的重复条数. 1.select * from 表名 where 列名 in (select 列名 from 表名 group by ...

随机推荐

  1. 代码面试集锦 1 - Uber

    Given an array of integers, return a new array such that each element at index i of the new array is ...

  2. WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)

    现在新建的WTS模板,默认最低版本是16299了,目标版本是17134 17134到来之前,就感觉到会这样,不过终究还是来了. 不支持15063的原因是导航菜单Windows.UI.Xaml.Cont ...

  3. .NetCore WebApi + Vue +MySql搭建博客

    因为我是一直写C#的,所以最近闲暇时间一直在学习.NET Core,该博客的后端使用的就是.NET Core WebApi然后加前端Vue. 首先后端.NET Core搭的框架是一个仓储层+服务层+A ...

  4. Android开发教程 - 使用Data Binding(一) 介绍

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  5. [学习笔记]BSGS

    \(\%\%\% Fading\) 早就会了,我最近才理解,当时颓废太多忘学了 1.[SDOI2013]随机数生成器 当天正好在学数列,回来发现用必修五的知识就没了-- 不过特判好烦啊. \(Code ...

  6. SpringBoot入门之内嵌Tomcat配置

    spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / .需要用到的就是端口.上下文路径的修改,在spring boot中其修改方 ...

  7. 【文档】使用Sphinx + reST编写文档

    0 前言 写文档是开发人员日常工作中的一项重要内容,除了word之外,我更偏爱使用标记语言(Markup Language).使用标记语言,可以利用简单.免费的文本编辑器(记事本,vim, emacs ...

  8. iOS-贝塞尔连续曲线

    一个曲线 UIColor *color = [UIColor redColor]; [color set]; UIBezierPath *path = [UIBezierPath bezierPath ...

  9. node.js中的回调

    同步和阻塞:这两个术语可以互换使用,指的是代码的执行会在函数返回之前停止.如果某个操作阻塞,那么脚本就无法继续,这意味着必须等待. 异步和非阻塞:这两个术语可以互换使用,指的是基于回调的.允许脚本并行 ...

  10. POJ 2782

    #include <iostream> #include <algorithm> #define MAXN 100005 using namespace std; int _m ...