sql server 如何截取字符到想要的文字之前

比如: abc/123#456
(此数据长度未知)
我想截取#以前/以后的数据.. 咋截出来啊...
抱歉.. 提交问题的时候标题忘记修改了. 是,net.......抱歉 LZ已剁手...

第1个回答  推荐于2016-11-15
select substring(@a,charindex('/',@a)+1,charindex('#',@a)-charindex('/',@a)-1)追问

小哥 我想在.net的cs里做操作

追答

你问的不是sqlserver吗,.net的也有indexof啥的方法吧

追问

我已经剁手了.. 不过你这段语句在SQL中也不好使...

追答

不要吓唬我哦,我可是做了测试才贴上来的呵呵

追问

消息 537,级别 16,状态 2,第 1 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

我的数据库中数据并不完全那么符合标准. 有的满足条件有的不满足...

追答

你要筛选,就得先确保字段中有/与#这样的字符,没有当然报错了,再说,报错是因为你的数据有误,也不至于说别人的代码不管用啊
select case when charindex('#',@a)>0 then substring(@a,charindex('/',@a)+1,charindex('#',@a)-charindex('/',@a)-1)
else @a end from tb

追问

你有Q么? 加上聊吧 这样挺费劲. 我的筛选条件还是加的有问题, 数据要比我在这提问的买麻烦...

追答

私信我吧,上班禁Q

追问

我在HI百度中加你了...私信有点不会整

追答

额。。都说是禁用了,Q很hi一个性质,就是不能用-_-

追问

私信给你了

本回答被提问者采纳
第2个回答  2013-04-08
字符串.substring(0,字符串.indexof("#")+1)
第3个回答  2013-04-08
正则表达式。追问

比如说我只想保留城市名称.. 此正则怎么写? 比如说 辽宁省沈阳市沈河区 我只想要沈阳市3个字

追答

你还是用substring + indexOf吧。

追问

表示没用明白啊. 楼下也给代码了, 但是根本不截取啊..

追答

public static void main(String[] args) {
String str = "辽宁省沈阳市沈河区";
str = str.substring(str.indexOf("省")+1,str.indexOf("市")+1);
System.out.println(str);
}

追问

取出的是沈阳市沈河区....

追答

怎么可能...

sql截取特定字符前的数据
在SQL中,截取特定字符前的数据通常可以通过`LEFT`函数结合`CHARINDEX`(在某些数据库如SQL Server中)或`INSTR`(在MySQL中)等函数来实现。具体方法取决于你所使用的数据库系统。以SQL Server为例,如果你想从一个字符串字段中截取某个特定字符(比如逗号`','`)前的所有数据,你可以使用`LEFT`函数...

如何通过SQL截取指定字段某一个字符的前面或后面的字符串?
针对SQL Server的实现:当需截取字符串"OPE-CZ-108-003-SE71.2"中的"."字符前面的字符串时,可以采用如下SQL语句。结果为"OPE-CZ-108-003-SE71",取值范围从字段第一位置开始,至"."字符前一个位置结束。对于截取"."字符后面的字符串,同样使用SQL Server,只需调整SQL语句,从"."字符后一位...

sql server 如何截取字符到想要的文字之前
select substring(@a,charindex('\/',@a)+1,charindex('#',@a)-charindex('\/',@a)-1)

如何截取一段sql中某个字符串之前的内容,在线等
\/*** Sql Server中截取字符串的常用方法 ***\/--1、LEFT()方法---函数说明---1)语法:LEFT(character,integer) --2)介绍:参数1:要截取的字符串,参数2:截取字符个数--3)使用:--返回从字符串左边开始指定个数的字符--select LEFT('SqlServer_2008',3)--4)返回:Sql--1、RIGHT...

sql server截取某个特定字符前的字符串
left(列名,charindex(特定字符,列名)-1)left:返回从左边开始指定字符串 charindex:找到特定并返回字符所在位置 select  left(case_name,charindex('_',case_name)-1) from table1  where charindex('_',case_name)-1 > 0 注意:不加where后面的条件会报 “传递给 LEFT 或 ...

sqlserver中如何进行截取字符串然后再计算?
oracle中的方法可以这样,但是不知道sql server中支不支持相应的函数,你可以试一下 select replace(t.number,'m','') num from table1 t \/\/去掉m 变成100*200但是这是varchar类型不是数字 (1)instr(replace(t.number,'m',''),'*',1) 从100*200的第1位截取到 '*' 的长度,...

sql如何截取字符串中前面的数字
select dbo.fn_myget('说多了几分134lljjf爱','Chinese',1,1000)结果:自定义函数说明:函数共需要4个参数:第一个参数是要截取的字符串;第二个参数根据要截取的内容不同,分别有“Digital”(截取数字)、“Letters”(截取字母)、“Chinese”(截取中文);第三个参数代表截取的起始位;第四个...

sql server中 如何截取字符串的前几位。 例如 值= 广东省深圳市 我只...
SUBSTRING ( "广东省深圳市" , 0 , 2 ) ,0是你要截取字符的开始位置,2是你要截取字符的结束位置,即从第一位开始截取到第几位。

SQL server 如何截取特定字符第二次出现的前几位
99 else charindex('-',substring(id,charindex('-',id,-1)+1,999)) end)-1), case when charindex('-',substring(id,charindex('-',id,-1)+1,999)) = 0 then 99 else charindex('-',substring(id,charindex('-',id,-1)+1,999)) end lens from t你试试吧!望采纳!

sql截取字段的方法有哪些?
要截取SQL数据库中的字段,不同数据库采用的函数有所不同。在Microsoft SQL Server、MySQL以及PostgreSQL中,常用的是`SUBSTRING`函数。其基本语法为`SUBSTRING('你的字符串',开始位置,截取长度)`。例如,`SUBSTRING('Hello World', 7, 5)`将返回子字符串`World`。然而,数据库系统并不是只有这些基本...

相似回答