当前位置:首页 » 编程语言 » sql字符的位置

sql字符的位置

发布时间: 2022-06-09 10:14:05

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(字串): 将所有字串结尾的空白移除

㈡ MS SQL Server有没有查找字符串位置的函数

charindex
(字符串表达式1,字符串表达式2[,整数表达式])
select charindex('ab','BCabTabD')返回3
select charindex('ab','BCabTabD',4)返回6
在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。
可以指定在字符串2中查找的起始位置。

㈢ sql 查找字段中某字符的位置

1、创建测试表,

create table test_student(id number, remark varchar2(20));

㈣ sql 怎样定位一个字符所在的位置

可以通过INSTR方法来进行查询:
sql:select INSTR('abcdefg ','c') from al;
输出结果:3。
解释:以上sql就是查询c字符在“abcdefg”中的位置。

㈤ SQL 查询指定字符串的位置

可用charindex函数。
如:查找字符串中“你好”的位置
执行:
select charindex('你好','2432你好dsfasdf')结果:
结论:“你好”中的“你”的起始位置是5,所以这样就能判断出指定字符的位置了。

㈥ sql 查找字符串位置(从倒数算起)

declare @i int,@j int,@str varchar(20)
set @str='abc-def-h'
set @i=1
set @j=len(@str)
declare @num int
while @i<@j
begin

set @num=charindex('-',@str,@i)
set @i=@i+1
set @i=@num+1
select @num
end

㈦ SQL如何按指定字符在字符串中的位置来排序

CreateTableT
(
idint,
StVarchar(100)
)

InsertIntoTValues(1,'魂牵梦萦复方丹参a草叶魂牵梦萦')
InsertIntoTValues(2,'魂牵梦萦复方丹参草叶a魂牵梦萦')
InsertIntoTValues(3,'魂牵梦萦复方丹参草叶b魂牵梦萦')
InsertIntoTValues(4,'魂牵梦萦复方丹参b草叶魂牵梦萦')
InsertIntoTValues(5,'魂牵梦萦复方丹参草叶魂牵abc梦萦')
InsertIntoTValues(6,'魂牵梦萦复方丹参草叶什么都没有魂牵梦萦')

--先按是否包含a/b排序(包含的在前面,不包含的在后面)
--再按a/b在字符串中出现的位置排序
Select*FromT
OrderbyCaseWhenPATINDEX('%[ab]%',St)>0Then0Else1End,PATINDEX('%[ab]%',St)

㈧ SQL获取字符串最后出现的位置

一.如:'6.7.8.2.3.4.x'得到最后一个'.'后面的字符串:
declare @str1 varchar(50)
set @str1='6.7.8.2.3.4.x'
select REVERSE(SUBSTRING(REVERSE(@str1),1,CHARINDEX('.',REVERSE(@str1))-1)) -------- string:'x'--

二.如:'6.7.8.2.3.4.x'得到最后一个'.'前面的字符串:
declare @str2 varchar(50)
set @str2='6.7.8.2.3.4.x'
SELECT substring(@str2,1,(LEN(@str2)-CHARINDEX('.',REVERSE(@str2)))) -------- string:'6.7.8.2.3.4'--

三.如:'6.7.8.2.3.4.x'得到最后一个'.'在字符串的位置:
declare @str3 varchar(50)
set @str3='6.7.8.2.3.4.x'
SELECT LEN(@str3)-CHARINDEX('.',REVERSE(@str3))+1 --------Integer:12--

㈨ sql怎么查询某个字符在字符串中的位置

select CHARINDEX('查询字符',查询字段), * from 表

㈩ SQL 特殊字符位置

DECLARE @str VARCHAR(150)
declare @result table(indexOfArisk int)
declare @strResult int
set @strResult = 0

SET @str='100.1*200.22*300.333*400.4444*500.55555*66*77'

while (charindex( '*', @str) != 0)
begin

set @strResult = @strResult + charindex( '*', @str)
insert into @result values(@strResult)
set @str = Substring(@str, charindex('*', @str) + 1, len(@str))

end

select * from @result

这个查询能得到所有*的位置,根据你的需要获取吧。
Wish it helps.

热点内容
maven预编译 发布:2025-02-08 09:20:34 浏览:753
手机电量缓存 发布:2025-02-08 09:01:37 浏览:898
java怎么写程序 发布:2025-02-08 09:00:55 浏览:868
javaphp加密 发布:2025-02-08 08:59:45 浏览:986
股票避险资产配置哪个好 发布:2025-02-08 08:57:44 浏览:878
谷歌浏览器开启ftp 发布:2025-02-08 08:55:08 浏览:33
安卓工程师开发是什么专业 发布:2025-02-08 08:38:15 浏览:678
怎么用电脑和朋友远程服务器连接 发布:2025-02-08 08:29:52 浏览:233
如何播放咪咕视频的缓存电影 发布:2025-02-08 08:28:17 浏览:574
台式电脑修改密码在哪里修改 发布:2025-02-08 08:25:18 浏览:298