首先建一张测试表:

create table teststring(name nvarchar(100));
insert into teststring
values
('张三,李四,王五,马六,萧十一,皇宫');

1.判断字符串中某字符(字符串)出现的次数,第一次出现的位置最后一次出现的位置:

查看’,’出现的次数

select LEN(name)-LEN(REPLACE(name,',','')) from teststring;

查看’,’第一次出现的位置:

select CHARINDEX(',',name) from teststring;

查看’,’最后一次出现的位置:

select len(name)-(CHARINDEX(',',REVERSE(name))-1) from teststring;

2.取出以’,’分隔开的字符(串),这个例子中就是’张三’、’李四’等

这是有规律的,首先应该想到有没有特定的系统函数实现,好像没有,其次就应该想到循环了。

当我把’张三’取出后,怎样把’张三,’去掉呢?

取’张三’不难,

select SUBSTRING(name,1,CHARINDEX(',',name)-1) from teststring;

如何把’张三,’去掉呢?开始我也不知道,baidu、google啊,关键字sql、split吧,总之我也是搜的

select STUFF(name,1,CHARINDEX(',',name),'') from teststring;

好像用replace也能实现

select REPLACE(name,substring(name,1,CHARINDEX(',',name)),'') from teststring;

那现在就差循环了,我很少写存储过程或函数的,语法都不记得,用的时候现查(经常用就记得了),我都写匿名的存储过程,哈哈

create table teststring2(name nvarchar(100));

declare @name nvarchar(100);
select @name= name from teststring;
while(CHARINDEX(',',@name)<>0)
begin
insert into teststring2 select SUBSTRING(@name,1,CHARINDEX(',',@name)-1);
set @name=STUFF(@name,1,CHARINDEX(',',@name),'');
set @i=@i+1;
end
insert into teststring2
select @name

select * from teststring2就可以看到了。

这只是表中只有一个字段的,如果多的话,用表变量应该就可以了。

下面例子:

  --当产品名称中包含括号的时候从产品名称中截取出括号内的内容
SELECT product_code
,CASE WHEN CHARINDEX('(',product_name) != 0 THEN
substring(product_name,CHARINDEX('(',product_name)+1,CHARINDEX(')',product_name)-CHARINDEX('(',product_name)-1)
end as pcode
,product_name
FROM product

SQL Server中判断字符串出现的位置及字符串截取的更多相关文章

  1. Sql Server中判断表、列不存在则创建的方法[转]

    一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  ? ...

  2. Sql Server 中由数字转换为指定长度的字符串

    一个列的数据类型是 int ,从 1 开始自动增长,另一个列是字符串,现在想把 int 列转换成 九个字符,比如 1 转换后就是 000000001 ,添到字符串列,怎么实现呢? set @imaxU ...

  3. sql server中的怎么把数值型转换为字符串

    ①select cast(字段 as varchar) from 表名 ②select convert(varchar(50),字段) from 表名  

  4. sql server 中判断分组排序的使用示例

    现在需要查询一组数据,是对一列字段(column01)的数据分范围查询后分组排序: select (case when [column01] >0 AND [column01]<= 500 ...

  5. ASP.NET用SQL Server中的数据来生成JSON字符串

    原文引自:  作者: 缺水的海豚  来源: 博客园  发布时间: 2010-09-21 21:47  阅读: 6136 次  推荐: 0   原文链接   [收藏] 摘要:ExtJs用到的数据内容基本 ...

  6. sql server如何判断数据库是否存在

    如何判断数据库是否存在       执行下列的SQL,获得一张表,根据表的行数来判断. select * from master..sysdatabases where name=N'所查询的数据库名 ...

  7. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  8. SQL Server中截取字符串常用函数

    SQL Server 中截取字符串常用的函数: .LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截 ...

  9. SQL Server 中截取字符串常用的函数

    SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要 ...

随机推荐

  1. python——从datetime模块探索python的数据架构

    问题出现于我试图向自建网页中加入实时时间开始. 我之前已经知道python中有有关事件和日期的模块datetime.以下导入datetime并作实验. >>> import date ...

  2. 使用pywin32处理excel文件

    #!/usr/bin/env python #-*- coding:utf-8 -*- ####################################################### ...

  3. 系统安装-007 CentOS7yum源添加、删除及其yum优化(转)

    一.配置阿里云源为主源mv  /etc/yum.repos.d/CentOS-Base.repo    /etc/yum.repos.d/CentOS-Base.repo.bakwget -O /et ...

  4. Kinect2.0获取关节姿态(Joint Orientation)

    Bones Hierarchy 骨骼层次结构从SpineBase作为根节点开始,一直延伸到肢体末端(头.指尖.脚): 层级结构如下图所示: 通过IBody::GetJointOrientations函 ...

  5. 动态规划处理diff算法 Myers Diff (正向)

    Eugene W. Myers 在他1986年发表于"Algorithmica"的论文"An O(ND) Difference Algorithm and Its Var ...

  6. hdu 4122 Alice&#39;s mooncake shop (线段树)

    题目大意: 一个月饼店每一个小时做出月饼的花费不一样. 储存起来要钱.最多存多久.问你把全部订单做完的最少花费. 思路分析: ans = segma( num[]*(cost[] + (i-j)*s) ...

  7. Uploadify in ASP.Net

    和分页类似,文件上传是web开发标配的技能之一.下面介绍Uploadify的配置和使用. 一.配置 首先到Uploadify官网下载,然后在项目中添加相应引用.前台代码如下: 1.jquery.js2 ...

  8. ios中封装九宫格的使用(二级导航)

    效果图 一般用于导航功能 第一步下载http://pan.baidu.com/share/link?shareid=1824940819&uk=923776187 第二步 把下图内容放在你的x ...

  9. 使用Idea添加PYTHONPATH的一种方案

    工作中我们常常需要更改PYTHONPATH,为项目添加一些依赖. 而不同的项目依赖的PYTHONPATH是不一样的,这就导致项目之间的PYTHONPATH发生混乱. 另一方面,有的电脑上PYTHON2 ...

  10. IT软件外包行业深入分析:现状、前途、趋势、待遇 什么是软件外包 外包公司是怎么工作的 软件外包公司的面试 软件外包公司需要什么样的人

    目录: [0] - 为什么要对大学生谈软件外包? [1] - 什么是软件外包? [2] - 软件为什么要外包? [3] - 为什么要承接软件外包 [4] - 做软件外包有前途吗? [5] - 外包公司 ...