SQL Server:提取特定字符之前的所有内容

时间:2018-09-12 15:45:16

标签: sql-server tsql sql-server-2008-r2

我有这个:

21654-8012
1234-127834
12345-1222

我要提取这个:

21654
1234
12345

基本上,连字符-之前的所有字符。有人对从哪里开始有什么建议?

2 个答案:

答案 0 :(得分:2)

leftcharindex()结合使用:

select t.col, left(col, charindex('-', col)-1)
from table t;

答案 1 :(得分:0)

您可以使用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