sql 截取字符串与 截取字符串最长的字符串
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 截取字符串与 截取字符串最长的字符串的更多相关文章
- 输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)
首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用Scanner获取要输入的个数,最终找到的个数也不固定,我们可以封装两个方法,并且返回值类型为数组. 我遇到的 ...
- python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串
1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件, 第一个字母和最后一个字符是第一次重复 这个子字符串的中间字母没有重复 这个 ...
- Python求包含数字或字母最长的字符串及长度
一.求包含数字或字母最长的字符串及长度 org = 'ss121*2222&sdfs2!aaabb' result = [] #保存最终要输出的字符串 result_temp = [] #保存 ...
- sql和access中截取字符串的区别
一向对数据库不熟悉,今天又遇到简单而又被忽略的问题——字符串的截取. 在Excel处理数据过程中,我们常用substring,left,mid,right来截取字符:在.NET编程中,我们常用subs ...
- SQL使用UPDATE和SUBSTRING截取字符串方法,从头截取到某个位置,截取中间片段,字符串中间截取到末尾或删除前面的字符串
//从头截取 update 表名 set 表列名 =SUBSTRING(表列名,1,目标位置数值) //!计数从1开始,从左往右 where 条件 //条件自己选择,不加where条件会更新所有 ...
- java 正则匹配空格字符串 正则表达式截取字符串
java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...
- python中字符串操作--截取,查找,替换
python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...
- .NET string字符串的截取、移除、替换、插入
在实际开发中经常要用到string的各种截取等操作,在这里总结自己认为经常出现的.NET 字符串的截取.移除.替换.插入操作,方面以后查阅. 前台代码: <%@ Page Language=&q ...
- Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数
怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那 ...
随机推荐
- 漫长Appium之路(一)——从黑苹果到虚拟机
作为一名普普通通的实习生,我也开始习惯折腾一般的生活了.部门应该最近是要搞个iOS自动化测试工具,我从最开始说起吧. 应该是上上上周五.主管找到我,说要装一个黑苹果,要我尽快把黑苹果能支持的硬件配置给 ...
- poj1013.Counterfeit Dollar(枚举)
Counterfeit Dollar Time Limit: 1 Sec Memory Limit: 64 MB Submit: 415 Solved: 237 Description Sally ...
- Third scrum meeting - 2015/10/28
在一天的工作中明显发现到,无法和网站开发团队进行交流会严重导致我们的进程拖延,所以我们在现有的情况下也把大家的goal初步完成了,我们也对代码规范进行了详细的讨论,以及UI的设计完成,所以整个团队都真 ...
- Unity3D研究院之Jenkins的使用(七十八)
长夜漫漫无心睡眠,来一篇嘿嘿.我相信如果已经用Shell脚本完成IOS和Android打包的朋友一定需要Jenkins 怎么才能让策划打包ipa和apk?怎么才能彻底省去程序的时间,只要在同一局域网内 ...
- python4delphi 安装
环境搭建: 目前p4d已经可以支持到XE7,可惜googlecode即将关闭,不知道作者是否会在github上继续更新. 因为此开源项目历史较久远,拿到源代码后可能还需要手动修改相关的文件引用,毕竟需 ...
- HDOJ 1102 生成树
Constructing Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 二级域名session 共享方案
二级域名session 共享方案 1.利用COOKIE存放session_id(); 实例: 域名一文件php代码: <?php session_start(); setcookie(&qu ...
- 《ASP.NET1200例》在DataList里编辑和删除数据
学习内容:如何创建一个支持编辑和删除数据的DataList.增加编辑和删除功能需要在DataList的ItemTemplate和EditItemTemplate里增加合适的控件,创建对应的事件处理,读 ...
- 【leetcode】3Sum Closest
3Sum Closest Given an array S of n integers, find three integers in S such that the sum is closest t ...
- Solr5.3.1整合IKAnalyzer
由于solr5.3.1本身不支持中文分词,而msseg4j的分词效果不明显.因而采用IK进行分词,然而参考http://www.superwu.cn/2015/05/08/2134/在google上下 ...