获取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这样简单的事情不是很愚蠢吗?