首页 > 解决方案 > SQL Server 仅选择字符串的一部分

问题描述

如果有人可以帮助我在“(”之前只选择字符串的左侧部分。

例如我有这个字符串:

SS0054(BOSCH)

我只想选择左边的文本(,而忽略右边的部分。

我设法选择了左侧部分,但在我的数据中,我也有字符串值(,例如 just SS0054,但随后出现错误:

传递给左侧函数的长度参数无效

如何在存在(a 的字符串左侧选择所有值(

这是我的代码:

SELECT UPPER(LEFT(RTRIM(LTRIM('SS0054(BOSCH)')), CHARINDEX('(', REVERSE(RTRIM(LTRIM('SS0054(BOSCH)')))) - 1));

提前致谢

标签: sqlsql-server

解决方案


只需检查字符串中的“(”,如下所示:

DECLARE @string NVARCHAR(50)='78BD0920-2(VALEO)'

SELECT CASE WHEN CHARINDEX('(',@string)!=0
THEN 
UPPER(LEFT(RTRIM(LTRIM(@string)), CHARINDEX('(', @string) - 1))
 ELSE @string -- ( not exist
  end

推荐阅读