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

问题描述:

我想提取SQL Server中'@'符号之前的字符串。将字符串提取到SQL Server中的特定字符

例如:

[email protected] 
o/p - abcdef 
+0

我想知道怎么做类似的方式在Netezza公司了。请帮忙。 – user3438791 2014-10-30 14:36:27

你可以这样做:

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) 
+0

谢谢戈登。我收到一个错误'左侧关键字附近的语法错误'。 – user3438791 2014-10-30 14:37:38