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)