当前位置:首页 » 编程语言 » sql获取已指定符号分割的值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql获取已指定符号分割的值

发布时间: 2022-08-14 17:48:30

sql 在一列中,以某个字符为分隔符,获取这个分隔符前面的并显示出来

SELECT LEFT(email,charindex('#',email)-1) FROM test WHERE email like '%#%';

Ⅱ sql 查询按指定的字符串个数分割字符串 比如123456789 按3个字符串分割 输出结果如下 123 456 789

SELECT SUBSTRING('123456789',1,3) +' '+SUBSTRING('123456789',4,3) +' '+SUBSTRING('123456789',6,3)

Ⅲ sql 怎么截取固定符号之间的数

先用charindex 判断出%位置,然后substring 截取,你要循环,先循环出%的个数+2就可以了,具体方法看你都会replace,那你应该会用的,我就不写了。
这是sql的语法

oracle的话方法一样,就是语法不同而已

Ⅳ sql 如何以逗号为分隔符分割一个字段的值

可用substring函数。

创建测试表及数据:

createtabletest
(idvarchar(10));

insertintotestvalues('123abc');
insertintotestvalues('456def');
insertintotestvalues('789ghi');

执行:

selectsubstring(id,1,3)+','+substring(id,4,3)asidfromtest

结果截图:

也就显示成了用逗号分隔的样子。

Ⅳ 简单SQL语句,如何截取指定分隔符前字符串

一、用到的函数:substring(' ', , )、charindex(' ',' ')
select SUBSTRING('[email protected]',1,charindex('@','[email protected]')-1)
1.substring(字符串表达式,开始位置,长度):
从一个指定字符串的指定位置截取制定长度的字符;
第一个参数表示被截取的字符串;
第二个参数表示要在第一个参数中开始截取的位置;
第三个参数表示要截取的长度。
例如:select substring('abc123',1,2) →返回ab
从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。
2.charindex(字符串表达式1,字符串表达式2[,整数表达式]):
在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。
可以指定在字符串2中查找的起始位置。
例如:select charindex('ab','BCabTabD') → 返回3
select charindex('ab','BCabTabD',4) →返回6

二、用到的函数:left(' ', )、charindex(' ',' ')
select LEFT('[email protected]',charindex('@','[email protected]')-1)
1.left(字符串表达式,整数表达式):
从字符串表达式的最左边开始截取整数表达式个字符。
例如:select left('abcdef',3) →返回abc

Ⅵ SQL如何根据符号截取字符串

这个你可以用explode('字符串名,',');来分隔,得到的是一个数组。
比如$a="1,2,3,4,5,6,7,8";
$arr=explode($a,',');
这样$arr这个数组的元素就成了$arr=array('1','2','3','4','5','6','7','8');了,输出即可
当然这是PHP的

Ⅶ SQL如果提取某些符号中的数值

如果字符是固定的,比如*,可以考虑使用f_split函数来分隔处理再处理。
比如:SELECT * FROM dbo.f_split('31.5*1.25*18','*')
结果:
col
--------------------------------------------------
31.5
1.25
18

Ⅷ SQL怎么取得某个栏位中符号之间的数据

declare @str varchar(50); -- 截取前的字符串
declare @delimit varchar(1); -- 分隔符

set @str='mgmjs1_Apv:125712441117929:30';
set @delimit=':';

select SUBSTRING(@str,CHARINDEX(@delimit,@str)+1,CHARINDEX(@delimit,@str,CHARINDEX(@delimit,@str)+1)-CHARINDEX(@delimit,@str)-1)

如果是在表里把字符串变量替换成字段名

Ⅸ sql字段里有逗号隔开的数据,怎么取值

sql字段有逗号隔开,数据取值的方法。

如下参考:

1.查询数据库表的所有字段,直接使用select语句,如下图。

Ⅹ SQL 特定字符串分割

	SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO

CREATEfunction[dbo].[SplitString]
(
@Inputnvarchar(max),
@Separatornvarchar(max)=',',
@RemoveEmptyEntriesbit=1
)
returns@TABLEtable
(
[Id]intidentity(1,1),
[Value]nvarchar(max)
)
as
begin
declare@Indexint,@Entrynvarchar(max)
set@Index=charindex(@Separator,@Input)

while(@Index>0)
begin
set@Entry=ltrim(rtrim(substring(@Input,1,@Index-1)))

if(@RemoveEmptyEntries=0)or(@RemoveEmptyEntries=1and@Entry<>'')
begin
insertinto@TABLE([Value])Values(@Entry)
end

set@Input=substring(@Input,@Index+datalength(@Separator)/2,len(@Input))
set@Index=charindex(@Separator,@Input)
end

set@Entry=ltrim(rtrim(@Input))
if(@RemoveEmptyEntries=0)or(@RemoveEmptyEntries=1and@Entry<>'')
begin
insertinto@TABLE([Value])Values(@Entry)
end

return
end

方法是其他地方找的

set@str1='1,2,3'
select[Value]from[dbo].[SplitString](@str1,',',1)