Sql 如何从连接的字段中选择子字符串?

Sql 如何从连接的字段中选择子字符串?,sql,substring,Sql,Substring,我有一个要求,我想在数据库中获得连接列的子字符串。不同记录的长度可能不同,但模式相同。 示例: 我想从列值4306657 | AA-BB-CC-XX-10 | 5194 |中获取值4306657 | AA-BB-CC-XX-10 | 5194 | select语句或函数是什么?在mysql中使用SUBSTRING函数。 下面是该函数的语法 SUBSTRING(str, pos, len) 其中 str=输入字符串, pos=一个整数,表示字符串str中的字符串位置, len=一个整数,指示要返

我有一个要求,我想在数据库中获得连接列的子字符串。不同记录的长度可能不同,但模式相同。
示例:
我想从列值
4306657 | AA-BB-CC-XX-10 | 5194 |
中获取值
4306657 | AA-BB-CC-XX-10 | 5194 |

select语句或函数是什么?

在mysql中使用
SUBSTRING
函数。 下面是该函数的语法

SUBSTRING(str, pos, len)
其中
str=输入字符串,
pos=一个整数,表示字符串str中的字符串位置,
len=一个整数,指示要返回的字符数。

您可以尝试此操作

DECLARE @TEST VARCHAR(1000)
SET @TEST = '4306657|AA-BB-CC-XX-10|5194|BILLING'

SELECT SUBSTRING(@TEST,1,LEN(@TEST)-CHARINDEX('|',REVERSE(@TEST),1)+1)

建议:在编程语言php/ruby/perl/.net中拆分,如果不想传递到下一个sql查询,则在sql中拆分。另外,如果要连接字符串,为什么要连接要单独读取的部分