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. 【原创】express3.4.8源码解析之路由中间件

    前言 注意:旧文章转成markdown格式. 跟大家聊一个中间件,叫做路由中间件,它并非是connect中内置的中间件,而是在express中集成进去的. 显而易见,该中间件的用途就是 ------ ...

  2. 百度编辑器Ueditor 初始化加载内容失败解决办法

    项目上有用到百度文本编辑器ueditor,在页面加载的时候初始化编辑器内容时候,使用 $.document.ready(function() { UE.getEditor('editor').setC ...

  3. Buy Tickets(线段树)

     Buy Tickets Time Limit:4000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  4. Android EditText的设置

    1.输入法Enter键图标的设置: 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有normal,actionUnspecified,actionNone,ac ...

  5. 快还要更快,让PHP 7 运行更加神速

    导读 PHP 7 比5.x 快上很多,即使只有单纯的版本升级就已经很有感,不过大家还是希望它变得越来越快,这时再做些小调整就会更有fu,Let's try it! 事前准备 说到PHP 7,那一定跑不 ...

  6. bmob

    移动后台: bmob http://baike.baidu.com/link?url=GHdwJY3cGygcfQDdzosckQnhVy1pvIGZA2Ws0K26lSSFGu7QRX4R1wlo6 ...

  7. windows下的文件到linux下乱码 iconv 修改文件编码

    conv [选项...] [文件...] 有如下选项可用: 输入/输出格式规范:-f, --from-code=名称 原始文本编码-t, --to-code=名称 输出编码 信息:-l, --list ...

  8. hiho一下 第九十七周 数论六·模线性方程组

    题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军 ...

  9. Master-Worker模式

    并行程序设计模式--Master-Worker模式 简介 Master-Worker模式是常用的并行设计模式.它的核心思想是,系统有两个进程协议工作:Master进程和Worker进程.Master进 ...

  10. Xenomai 安装准备工作

    一些安装xenomai的参考资料: http://my.oschina.net/hevakelcj/blog/124290 http://blog.sina.com.cn/s/blog_60b9ee1 ...