【问题标题】:SQL Server : Extracting Everything Before a Certain CharacterSQL Server:提取某个字符之前的所有内容
【发布时间】:2019-02-17 07:45:12
【问题描述】:

我有这个:

21654-8012
1234-127834
12345-1222

我想提取这个:

21654
1234
12345

基本上,连字符之前的所有内容,- 字符。有人对从哪里开始有任何建议吗?

【问题讨论】:

  • 使用LEFTCHARINDEX
  • 我试过玩 Left,但我不知道有一个 CHARINDEX 函数。会试试的
  • 宾果游戏,它奏效了。你应该把这个作为答案发布,所以我可以给你信用:p
  • 没什么大不了的。我不太在意积分。很高兴你解决了。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    leftcharindex() 一起使用:

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

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 2012-06-16
      • 1970-01-01
      • 2010-12-23
      • 2020-12-06
      • 1970-01-01
      • 2011-03-12
      • 2013-10-29
      • 1970-01-01
      相关资源
      最近更新 更多