列名 A
S9-110-2
S10-031-1
S12-022
S12-022-1-2
我需要截取第二个'-'之前的字符,如果没出现,就全截取.
请问这个要怎么写
下面是我写的
SUBSTRING
(A,0,
(CASE
when charindex('-',A,4) = 0 then '10'
when charindex('-',A,4) > 0 then charindex('-',A,4)-1
end)
)
这个运算不了.请问为什么
你好的!
with t(id) as你试试吧!
望采纳!
sql截取特定字符前的数据
在SQL中,截取特定字符前的数据通常可以通过`LEFT`函数结合`CHARINDEX`(在某些数据库如SQL Server中)或`INSTR`(在MySQL中)等函数来实现。具体方法取决于你所使用的数据库系统。以SQL Server为例,如果你想从一个字符串字段中截取某个特定字符(比如逗号`','`)前的所有数据,你可以使用`LEFT`函数...
SQL server 如何截取特定字符第二次出现的前几位
with t(id) as(select 'S9-110-2' union allselect 'S10-031-1' union allselect 'S10' union allselect 'S12-022' union allselect 'S12-022-1-2')select id, substring(id,1,(case when charindex('-',id,-1) = 0 then 99 else charindex('-',id,-1) end))+ substring...
在数据库查询中,如何通过SQL截取字符串前后的字符串?
针对SQL Server的实现:当需截取字符串"OPE-CZ-108-003-SE71.2"中的"."字符前面的字符串时,可以采用如下SQL语句。结果为"OPE-CZ-108-003-SE71",取值范围从字段第一位置开始,至"."字符前一个位置结束。对于截取"."字符后面的字符串,同样使用SQL Server,只需调整SQL语句,从"."字符后一位...
sqlserver中如何进行截取字符串然后再计算?
(1)instr(replace(t.number,'m',''),'*',1) 从100*200的第1位截取到 '*' 的长度,注:这时是长度,不是数字100 substr(num,1,instr(replace(t.number,'m',''),'*',1)-1) 从第一位截取到'*'之前,即取出100 (2)instr(replace(t.number,'m',''),'*',-1) 从100*2...
如何截取一段sql中某个字符串之前的内容,在线等
Sql Server中截取字符串的常用方法 ***\/--1、LEFT()方法---函数说明---1)语法:LEFT(character,integer) --2)介绍:参数1:要截取的字符串,参数2:截取字符个数--3)使用:--返回从字符串左边开始指定个数的字符--select LEFT('SqlServer_2008',3)--4)返回:Sql--1、RIGHT()方法-...
sql server 如何截取字符到想要的文字之前
select substring(@a,charindex('\/',@a)+1,charindex('#',@a)-charindex('\/',@a)-1)
sql server截取某个特定字符前的字符串
-1)left:返回从左边开始指定字符串 charindex:找到特定并返回字符所在位置 select left(case_name,charindex('_',case_name)-1) from table1 where charindex('_',case_name)-1 > 0 注意:不加where后面的条件会报 “传递给 LEFT 或 SUBSTRING 函数的长度参数无效”的错误。
sql server中 如何截取字符串的前几位。 例如 值= 广东省深圳市 我只...
SUBSTRING ( "广东省深圳市" , 0 , 2 ) ,0是你要截取字符的开始位置,2是你要截取字符的结束位置,即从第一位开始截取到第几位。
sql server 怎么截取字符串
substring(要截取的字符串,从第几位开始,截取几位) 可以从任意位置截取 left(字符串,截取几位) 从左侧截取 right(字符串,截取几位)从右侧截取几位
sql 截取字符串
简单的:select substr(‘04.06.02.063-48-Z952’,1,instr(‘04.06.02.063-48-Z952’,'-',1,2)-1) from dual ;instr(04.06.02.063-48-Z952,'-',1,2)的意思是找到第二个出现的-号,然后减去1,把左边都截取下来就ok了。实际使用的时候,用字段名替换那个字符串就ok了。希望帮到...