㈠ sql怎样定位一个字符所在的位置
常用的字符串函数,其作用可分为四大类:串接字符、截取字符、转换字符、其他作用的字符函数。
串接,就是把单独的字符串组合为一个。如把人的姓和名串接在一起形成一个完整的姓名字符串。
截取,是指从字符串里提取出一部分字符,形成子串。可以分为截取字符、提取字符的位置。
转换,是指把一个字符串中的内容或形式变换成另一个内容或形式。分为内容转换和形式转换。
其他作用的字符函数:以上三种作用之外的其他字符函数。
下面详细介绍。
串接函数
可以通过+或者-,实现串接操作。在不同的数据库管理系统中,使用的串接符号不同。
在SQL SERVER中的代码为:SELECT ‘JOHN’+ ‘SON’
在MySQL中的代码为:SELECT CONCAT(‘JHON’,‘SON’)
截取函数
1、SUBSTR(COLUMN NAME,STARING POSITION,LENGTH)
COLUMN NAME:字段名称
STARING POSITION:起始位置,即从第几个字符开始截取
LENGTH:长度,即截取多少个字符的长度
select emp_id,substr(emp_id,1,3) from employee
从雇员表中检索出雇员编号,雇员姓名两个字段。其中雇员姓名可通过从编号ID的前三个字符截取得到。
2、TRIM()、LTRIM()、RTRIM(),剪除字符串中的字符。
SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:
MySQL: TRIM( ), RTRIM( ), LTRIM( )
Oracle: RTRIM( ), LTRIM( )
SQL Server: RTRIM( ), LTRIM( )
各种 trim 函数的语法如下:
TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。
LTRIM(字串): 将所有字串起头的空白移除。
RTRIM(字串): 将所有字串结尾的空白移除
㈡ PL/SQL 中怎样返回某字符串在另一字符串中第2次出现的索引
应该用instr函数,比如查找一个字符串abcdefad中查找第二个a出现的位置,可用以下方法:
selectinstr('abcdefad','a',instr('abcdefad','a')+1)fromal;
运行结果:
也就是说第二个a出现的位置是第7个字符。
㈢ 我要获取一个字符串中某个标点第二次出现的位置
public class TestCode {
public static void main(String[] args) {
String str ="232ljsfsf.sdfl23.ljsdfsdfsdfss.23423.sdfsdfsfd";
//获得第一个点的位置
int index=str.indexOf(".");
System.out.println(index);
//根据第一个点的位置 获得第二个点的位置
index=str.indexOf(".", index+1);
//根据第二个点的位置,截取 字符串。得到结果 result
String result=str.substring(index);
//输出结果
System.out.println(result);
}
}
㈣ SQL server 如何截取特定字符第二次出现的前几位
你好的!
witht(id)as
(select'S9-110-2'unionall
select'S10-031-1'unionall
select'S10'unionall
select'S12-022'unionall
select'S12-022-1-2')
selectid,
substring(id,1,(casewhencharindex('-',id,-1)=0then99elsecharindex('-',id,-1)end))+
substring(substring(id,(casewhencharindex('-',id,-1)=0then99elsecharindex('-',id,-1)end)+1,999),1,(casewhencharindex('-',substring(id,charindex('-',id,-1)+1,999))=0then99elsecharindex('-',substring(id,charindex('-',id,-1)+1,999))end)-1),
casewhencharindex('-',substring(id,charindex('-',id,-1)+1,999))=0then99elsecharindex('-',substring(id,charindex('-',id,-1)+1,999))endlens
fromt
你试试吧!
望采纳!
㈤ SQL SEVER中如何实现在一个字符串中查找一个字符第三次出现的位置
CREATE
FUNCTION
IndexOf(@str
VARCHAR(500),@value
VARCHAR(50),@posIndex
INT)
RETURNS
int
AS
BEGIN
DECLARE
@pos
int=0
--记录位置
DECLARE
@i
INT
=0
--记录查找的次数
WHILE(@i<@posindex)
BEGIN
SET
@i=@i+1
set
@pos=CHARINDEX(@value,@str,@pos+1)
IF(@pos=0)
RETURN
0--如果没有找到就返回0,比如abcabc其中a中出现在2次@posIndex=3的话就返回0
END
RETURN
@pos
END
SELECT
dbo.IndexOf('abcabcabc','a',3)
㈥ SQL中,取字符串从右边第2个字符到左边的所有字符,求语句
SQL中,取字符串从右边第2个字符到左边的所有字符可以参考下面的代码:
oracle
select substr('字符串',0,Len('字符串')-2) from al;
Sql Server
select substr('字符串',0,Len('字符串')-2)
(6)sql查找字符第2次位置扩展阅读:
sql语句
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
㈦ PL/SQL 中怎样返回某字符串在另一字符串中第2次出现的索引
如果都不是NULL可以这样写
instr(instr(字串1,字串2),字串1,字串2)
先查出第一次的位置,在查这个位置后出现的第一次位置,这样就是查到第二次了
㈧ 截取字符串时,查找某字符第二次出现的位置,怎么查
--参考如下:可替换102-000001为你所需要的字符串,0为你所需查找的字符
--执行结果为5
--SELECTCHARINDEX('0','102-000001',0)为第一次出现的位置
--CHARINDEX('0',right('102-000001',len('102-000001')-CHARINDEX('0','102-000001',0)),0)为截取掉第一次出现的位置前字符后的位置,相加就是第二次出现的位置了。
SELECTCHARINDEX('0','102-000001',0)+CHARINDEX('0',right('102-000001',len('102-000001')-CHARINDEX('0','102-000001',0)),0)
㈨ sql 查找字段中某字符的位置
1、创建测试表,
create table test_student(id number, remark varchar2(20));
㈩ sql 查找字段中某字符的位置
1、创建测试表,
create table test_student(id number, remark varchar2(20));