当前位置:首页 » 编程语言 » sql调整字符串位置
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql调整字符串位置

发布时间: 2022-08-26 23:55:36

‘壹’ sql 替换某一位置字符

sql server 2005及以上版本可使用STUFF函数。

语法:

STUFF(character_expression,start,length,character_expression)

参数说明:

  • character_expression:一个字符数据表达式。character_expression可以是常量、变量,也可以是字符列或二进制数据列。

  • start:一个整数值,指定删除和插入的开始位置。如果start或length为负,则返回空字符串。如果start比第一个character_expression长,则返回空字符串。start可以是bigint类型。

  • length:一个整数,指定要删除的字符数。如果length比第一个character_expression长,则最多删除到最后一个character_expression中的最后一个字符。length可以是bigint类型。

返回类型

  • 如果character_expression是受支持的字符数据类型,则返回字符数据。如果character_expression是一个受支持的 binary 数据类型,则返回二进制数据。

注释

  • 如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串。如果要删除的长度大于第一个字符串的长度,将删除到第一个字符串中的第一个字符。

  • 如果结果值大于返回类型支持的最大值,则产生错误。

示例

  • 以下示例在第一个字符串abcdef中删除从第2个位置(字符b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。

SELECTSTUFF('abcdef',2,3,'ijklmn');
GO
  • 下面是结果集:

---------
aijklmnef

(1 row(s) affected)


以上摘自:https://msdn.microsoft.com/zh-cn/library/ms188043(v=sql.105).aspx

‘贰’ sql 怎样定位一个字符所在的位置

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

‘叁’ sql 改变字符串中的某一位

update table set 列= substring(列,1,3)+'1'+substring(列,5,len(列)-4) where 条件

‘肆’ 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有没有查找字符串位置的函数

sql 查找字符串位置使用CHARINDEX函数。

CHARINDEX函数,在一段字符中搜索字符或者字符串。

语法

CHARINDEX ( expression1 , expression2 , [ start_location ] )

参数

expression1

一个表达式,其中包含要寻找的字符的次序。expression1是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2属于字符串数据类型分类。

start_location

在expression2中搜索expression1时的起始字符位置。如果没有给定start_location,而是一个负数或零,则将从expression2的起始位置开始搜索。

返回类型

int


例:

‘陆’ 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语句批量修改字符串中指定位置的字符

--假如修改第10位的字符
update 表名 set 字段名=left(字段名,9) + '要替换成的内容' + substring(字段名,11,len(字段名))

‘捌’ sql中取指定字符串出现位置的方法

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

‘玖’ 用sql表值函数实现字符串的位置调换

创建

createfunction[dbo].wei
(@scodevarchar(10))
Returnsvarchar(10)
As
Begin
Declare@lenint
Declare@tvarchar(10)
select@len=len(@scode)
set@t=''
if@len%2=1
begin
set@t=SUBSTRING(@scode,@len/2+2,@len/2)+SUBSTRING(@scode,@len/2+1,1)+SUBSTRING(@scode,1,@len/2)
end
elseif@len%2=0
begin
set@t=SUBSTRING(@scode,@len/2+1,@len/2)+SUBSTRING(@scode,1,@len/2)
end
return@t
end

执行测试

selectdbo.wei('1230456')
selectdbo.wei('123456')

‘拾’ SQl如何把某几个字放到字符串的最前面

查找字段内容,然后把字符串临安替换成空,重组字符串,写入数据库