SQL Server:在某个字符之前提取所有内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server:在某个字符之前提取所有内容相关的知识,希望对你有一定的参考价值。

我有这个:

21654-8012
1234-127834
12345-1222

我想提取这个:

21654
1234
12345

基本上,连字符之前的一切,-字符。有没有人对从哪里开始有任何建议?

答案

使用leftcharindex()

select t.col, left(col, charindex('-', col)-1)
from table t;
另一答案

您可以使用CHARINDEX功能

   DECLARE @text VARCHAR(20)
   SET @text = '123456-0000'
   SELECT SUBSTRING(@text, 0, CHARINDEX('-', @text))

您可以使用字段名称代替@text

 SELECT SUBSTRING(YOUR_COLUMN_NAME, 0, CHARINDEX('-', YOUR_COLUMN_NAME)) FROM YOUR_TABLE_NAME

以上是关于SQL Server:在某个字符之前提取所有内容的主要内容,如果未能解决你的问题,请参考以下文章

SQL SELECT 某个字符后的所有内容

如何截取一段sql中某个字符串之前的内容,在线等

sql 提取第一个字符

sql 截取某个字符之前的数据

SQL 选择字符后的所有内容

Python提取两个字符串之间的内容