获取SQL Server中截断的子字符串

时间:2013-06-14 15:44:24

标签: sql sql-server string char

每个人的问题...我尝试使用字符串函数时,我已将某些值插入表中。我要做的是删除字符串的结尾并保留其前面的所有内容:

CREATE TABLE #BrokerNameT
  (
     BrokerName VARCHAR(100)
  )

INSERT INTO #BrokerNameT
            (BrokerName)
VALUES      ('Peter Pan Co Cash'),
            ('Batman Co Cash'),
            ('Spiderman Algo'),
            ('Spiderman Cash') 

在这里,我所期待的只是回归:'Peter Pan Co','蝙蝠侠Co'和'蜘蛛侠'

是否可以从字符串的结尾搜索第一个空格? 如果我能够做到这一点,那我不能在第一个空间之前保留所有东西吗?

知道我该怎么做吗?

我可以使用两个反转来实现这个目标吗?

2 个答案:

答案 0 :(得分:4)

反转字符串,然后找到第一个空格的位置,然后你知道最后一个空格的末端到底有多远。

SELECT
  SUBSTRING(
    BrokerName,
    1,
    LEN(BrokerName) - CHARINDEX(' ', REVERSE(BrokerName))
  )
FROM
  #BrokerNameT

答案 1 :(得分:0)

这是一个查询:

select *,
       left(BrokerName, len(BrokerName) - charindex(' ', reverse(BrokerName))
           ) as AllButLast
from BrokerNameT

Here是一个用来演示它的SQLFiddle。