declare @str nvarchar(50);
set @str='aa,32,22,55,7';
select charindex(',',@str,1) as '第一个逗号的索引值'
select replace(replace(LEFT(@str,charindex(',',@str,1)-1),char(9),''),char(32),'') as '第一个值'
select SUBSTRING(@str,charindex(',',@str,1)+1,len(@str)) as '从第一逗号开始截取出后面的字符串'

截取字符串最长的字符串,用的是自定义函数

 ALTER function [dbo].[fun_ecom_string]
(
@str varchar(500),--传入的字符串
@str2 varchar(50) --调用时候给空值,这个是用来保存最长字符串值的
)
returns varchar(50) as
begin
declare @result varchar(50)
SET @str=replace(replace(@str,char(9),''),char(32),'')
SET @result=@str
--第一个逗号的索引值
if charindex(',',@str,1)=0 and len(@str2)=0
begin
SET @result=@str
end
else if charindex(',',@str,1)=0 and len(@str2)>0
begin
if len(@result)<len(@str2)
begin
SET @result=@str2
end
end
else
begin
SET @result=LEFT(@str,charindex(',',@str,1)-1) --第一个值
if len(@result)>len(@str2)
begin
SET @str2=@result
end SET @str=SUBSTRING(@str,charindex(',',@str,1)+1,len(@str))--从第一逗号开始截取出后面的字符串
SET @result=dbo.fun_ecom_string(@str,@str2)
end return @result
end

调用测试结果:

select [dbo].[fun_ecom_string]
('98997378119101444444444443,503180004665,503144444444800046651,18919173781191013','') --结果:98997378119101444444444443
取字符串 以逗号 隔开中 最长的字符串 并且字符串是数字型的
ALTER function [dbo].[fun_ecom_string]
(
/*
取字符串 以逗号 隔开中 最长的字符串 并且字符串是数字型的
ISNUMERIC 判断字符串是否为数字
*/
@str varchar(500),--传入的字符串
@str2 varchar(50) --调用时候给空值,这个是用来保存最长字符串值的
)
returns varchar(50) as
begin
declare @result varchar(50)
SET @str=replace(replace(@str,char(9),''),char(32),'')
--SET @result=@str
--第一个逗号的索引值
if charindex(',',@str,1)=0 and len(@str2)=0
begin
SET @result=@str
end
else if charindex(',',@str,1)=0 and len(@str2)>0
begin
if ISNUMERIC(@result)=0
begin
SET @result=@str2
end
else if ISNUMERIC(@result)=1 and len(@result)<len(@str2)
begin
SET @result=@str2
end
end
else
begin
SET @result=LEFT(@str,charindex(',',@str,1)-1) --第一个值
if len(@result)>len(@str2) and ISNUMERIC(@result)=1 --ISNUMERIC 判断字符串是否为数字
begin
SET @str2=@result
end SET @str=SUBSTRING(@str,charindex(',',@str,1)+1,len(@str))--从第一逗号开始截取出后面的字符串
SET @result=dbo.fun_ecom_string(@str,@str2)
end return @result
end

sql 截取字符串与 截取字符串最长的字符串的更多相关文章

  1. 输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)

    首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用Scanner获取要输入的个数,最终找到的个数也不固定,我们可以封装两个方法,并且返回值类型为数组. 我遇到的 ...

  2. python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串

    1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件, 第一个字母和最后一个字符是第一次重复 这个子字符串的中间字母没有重复 这个 ...

  3. Python求包含数字或字母最长的字符串及长度

    一.求包含数字或字母最长的字符串及长度 org = 'ss121*2222&sdfs2!aaabb' result = [] #保存最终要输出的字符串 result_temp = [] #保存 ...

  4. sql和access中截取字符串的区别

    一向对数据库不熟悉,今天又遇到简单而又被忽略的问题——字符串的截取. 在Excel处理数据过程中,我们常用substring,left,mid,right来截取字符:在.NET编程中,我们常用subs ...

  5. SQL使用UPDATE和SUBSTRING截取字符串方法,从头截取到某个位置,截取中间片段,字符串中间截取到末尾或删除前面的字符串

    //从头截取 update 表名 set 表列名 =SUBSTRING(表列名,1,目标位置数值)  //!计数从1开始,从左往右 where 条件   //条件自己选择,不加where条件会更新所有 ...

  6. java 正则匹配空格字符串 正则表达式截取字符串

    java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...

  7. python中字符串操作--截取,查找,替换

    python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...

  8. .NET string字符串的截取、移除、替换、插入

    在实际开发中经常要用到string的各种截取等操作,在这里总结自己认为经常出现的.NET 字符串的截取.移除.替换.插入操作,方面以后查阅. 前台代码: <%@ Page Language=&q ...

  9. Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数

    怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那 ...

随机推荐

  1. ASP.NET中利用DataList实现图片无缝滚动

    这个问题之前也困扰我,后来解决了,拿出来分享下,以后用也方便,代码很容易看懂,不多说什么了 <div id="demo" style="overflow: hidd ...

  2. tyvj4221 货车漂移

    背景 蒟蒻中学的蒟蒻遇到了一些小问题. 描述 蒟蒻考完noip也就要回家种田了,他老家的田地在s点,可是种子市场在e点,为了购买种子,中途要经过很多城市,这导致快递费非常的贵(因为快到双11了),于是 ...

  3. 习惯mac . OS X 安装MacPorts

    1. 安装必要的软件 安装MacPorts需要先安装X11和Xcode,Lion系统已经默认安装好了X11,在Appstore里安装Xcode即可. 下载完Xcode之后,一般路径在/Applicat ...

  4. POJ 矩阵相乘 (随机化算法-舍伍德(Sherwood))

    周三的算法课,主要讲了随机化算法,介绍了拉斯维加斯算法,简单的理解了为什么要用随机化算法,随机化算法有什么好处. 在处理8皇后问题的时候,穷举法是最费时的,回朔比穷举好点,而当数据量比较大的时候,如1 ...

  5. 2015安徽省赛 B.求和

    题目描述 对于正整数n,k,我们定义这样一个函数f,它满足如下规律 现在给出n和k,你的任务就是要计算f(n,k)的值. 输入 首先是一个整数T,表示有T组数据 接下来每组数据是n和k(1<=n ...

  6. Ubuntu上安装gtk2.0不能安装的问题,“下列的软件包有不能满足的依赖关系”

    zez@localhoss:~$ sudo apt-get install libgtk2.0-dev正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成 ...

  7. [ruby on rails] 跟我学之(3)基于rails console的查增删改操作

    本章节展开对model的介绍:包括查增删改操作.紧接着上面一节<[ruby on rails] 跟我学之HelloWorld> 创建模型 使用命令创建模型 创建表post,默认自带两栏位 ...

  8. c# 如何使用wlanapi连接电脑到wifi

    http://www.codeproject.com/Articles/72105/Manage-WiFi-with-Native-API-WIFI-on-Windows-XP-SP Introduc ...

  9. SQL按照指定顺序对字段进行排序

    SqlServer按照指定顺序对字段进行排序 问题如下,在SqlServer有一个这样的SQL查询 SELECT *FROM ProductWHERE ID IN ( 12490, 12494, 12 ...

  10. UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)

    Sackler Museum of Art and Archaeology at Peking University is located on a beautiful site near the W ...