Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取SQL Server中截断的子字符串_Sql_Sql Server_String_Char - Fatal编程技术网

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

获取SQL Server中截断的子字符串,sql,sql-server,string,char,Sql,Sql Server,String,Char,问大家一个问题。。。当我尝试使用字符串函数时,我在表中插入了一些值。我要做的是删除字符串的结尾,并保留前面的所有内容: CREATE TABLE #BrokerNameT ( BrokerName VARCHAR(100) ) INSERT INTO #BrokerNameT (BrokerName) VALUES ('Peter Pan Co Cash'), ('Batman Co Cash'),

问大家一个问题。。。当我尝试使用字符串函数时,我在表中插入了一些值。我要做的是删除字符串的结尾,并保留前面的所有内容:

CREATE TABLE #BrokerNameT
  (
     BrokerName VARCHAR(100)
  )

INSERT INTO #BrokerNameT
            (BrokerName)
VALUES      ('Peter Pan Co Cash'),
            ('Batman Co Cash'),
            ('Spiderman Algo'),
            ('Spiderman Cash') 
在这里,我只想简单地返回:“彼得·潘公司”、“蝙蝠侠公司”和“蜘蛛侠”

可以从字符串末尾搜索第一个空格吗? 如果我能做到这一点,我就不能在第一个空格前保留所有内容吗

你知道我该怎么做吗


我可以用两个倒数来实现这一点吗?

倒数字符串,然后找到第一个空格的位置,然后你就知道最后一个空格离结尾有多远了

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

反转字符串,然后找到第一个空格的位置,然后知道最后一个空格离结尾有多远

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

以下是执行此操作的查询:

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

是一个SQLFIDLE来演示它。

下面是一个查询:

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

是一个SQLFiddle来演示它。

SQL Server没有提前做像这个和regex这样简单的事情不是很愚蠢吗?SQL Server没有提前做像这个和regex这样简单的事情不是很愚蠢吗?