将字符串提取到SQL Server中的特定字符串

时间:2014-10-28 16:48:58

标签: sql sql-server substring substr

我想在SQL Server中的'@'符号之前提取字符串。

示例:

abcdef@opkac
o/p - abcdef

1 个答案:

答案 0 :(得分:2)

你可以这样做:

select left(str, charindex('@', str) - 1)

注意:如果角色不存在,这将返回错误。所以你可能想要:

select (case when str like '%@%' then left(str, charindex('@', str) - 1) end)

编辑:

如果您使用的是Netezza,则可能需要使用substring()而不是left()。 Postgres现在支持left(),但是当Netezza开始使用它时没有:

select (case when str like '%@%' then substring(str from 1 for charindex('@', str) - 1) end)