SQL 服务器:提取特定字符前的所有内容

SQL Server : Extracting Everything Before a Certain Character

我有这个:

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