sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗

是的,只需使用子字符串和字符索引。
老实说,先寻找逗号位置,然后截取其后面的所有内容。

我上周刚刚处理了类似的请求。
Charindex查找逗号位置,+1 跳过逗号,len(str)-charindex计算长度。

这个声明非常有效。
你自己看看吧。

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗

你好,这个SQL字符串拦截问题真的很实用。
你提到的例子是我在工作中经常使用的一个例子。

我们以您提供的SQL为例,给您详细解释一下:
sql 选择 id, substring(str, charindex(',', str) + 1 , len(str)
charindex(',', str)) 来自面团;
此 SQL 行的目的是从测试表中的 str 字段中捕获逗号后面的内容。


charindex(',', str) 函数用于查找逗号在 str 字段中首次出现的位置。
charindex 的语法为 CHARINDEX(expr1 , expr2 , [start_position]),其中 expr1 为逗号 ',',expr2 为 str 字段,start_position 默认省略,表示从字符串开头查找。


substring(str, charindex(',', str) + 1 , len(str)
charindex(',', str)) 此函数用于捕获从逗号之后到字符串结尾之前的所有内容。
子字符串的语法为 SUBSTRING(expression, start, length),其中 expression 为 str 字段,start 从第一个小数点开始,即 charindex(',', str) + 1 ,length 为从逗号到字符串末尾的长度,即 len(str)
charindex(',', str)。

所以,执行这条SQL语句的结果就是截取str字段中逗号后面的所有内容。

这个方法很简单。
尝试一下,效果应该不错。
但需要注意的是,如果str字段中不存在逗号,charindex(',', str)将返回0,而substring函数将返回空字符串。
这需要引起注意。

无论如何,你都能弄清楚。
如果还有什么问题就来找我吧!