SQL使用特定字符向左修剪

SQL使用特定字符向左修剪,sql,sql-server,Sql,Sql Server,我有上千条记录,其中一些记录将在*之间 我的目标是删除*character之后的所有内容 abc * def as * sdsdsdsd dsdsdsdsdsd rewewewe * c and become abc as dsdsdsdsdsd rewewewe SELECT LEFT([Service Term], len([Service Term]) - CHARINDEX('*', [Service Term]) - 1) FROM [Webdata].[dbo].[WebSear

我有上千条记录,其中一些记录将在*之间
我的目标是删除*character之后的所有内容

abc * def
as * sdsdsdsd
dsdsdsdsdsd
rewewewe * c
and become
abc
as
dsdsdsdsdsd
rewewewe
SELECT  LEFT([Service Term], len([Service Term]) - CHARINDEX('*', [Service Term]) - 1)
FROM [Webdata].[dbo].[WebSearches]
我的查询是这样的,不清除*字符后面的任何内容

abc * def
as * sdsdsdsd
dsdsdsdsdsd
rewewewe * c
and become
abc
as
dsdsdsdsdsd
rewewewe
SELECT  LEFT([Service Term], len([Service Term]) - CHARINDEX('*', [Service Term]) - 1)
FROM [Webdata].[dbo].[WebSearches]
有人能纠正我这个问题吗。非常感谢。

您可以使用
left()

注意:这也会删除
*

如果您确实想保留
*
,则:

select (case when [Service Term] like '%*%'
             then left([Service Term], charindex('*', [Service Term]))
             else [Service Term]
        end)

可以同时使用子字符串()和left()

我建议使用left(),因为left很容易

语法

选择左侧(yourword,charindex(“”,yourword+“”)-1)