sql - SQL Server 仅选择字符串的一部分
问题描述
如果有人可以帮助我在“(”之前只选择字符串的左侧部分。
例如我有这个字符串:
SS0054(BOSCH)
我只想选择左边的文本(
,而忽略右边的部分。
我设法选择了左侧部分,但在我的数据中,我也有字符串值(
,例如 just SS0054
,但随后出现错误:
传递给左侧函数的长度参数无效
如何在存在(
a 的字符串左侧选择所有值(
?
这是我的代码:
SELECT UPPER(LEFT(RTRIM(LTRIM('SS0054(BOSCH)')), CHARINDEX('(', REVERSE(RTRIM(LTRIM('SS0054(BOSCH)')))) - 1));
提前致谢
解决方案
只需检查字符串中的“(”,如下所示:
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
推荐阅读
- .net - WCF NetNamedPipeBinding - Same pipe name and different users
- javascript - 想在 react js 的类组件中使用切换器功能?
- kql - 如何在 KQL 中将主机字节顺序 IP 地址转换为 ASCII IP xxxx
- html - 为什么设置填充使两个水平 div 垂直?
- javascript - 即使页面放大并重新加载后,窗口高度和文档高度也是相同的。垂直滚动条可见
- python - 根据 Pandas 中的两个第一列合并具有不同行数的列
- javascript - 创建触发器 VS 后端查询、性能和资源
- spartacus-storefront - 斯巴达克斯店面中的 PDP 页面和添加到购物车问题
- firebase - sendEmailVerification 与 sendSignInLinkToEmail 使用 firebase 进行电子邮件验证
- python - 了解 Python 中基于冲突的搜索 MAPF (cbs-mapf) 包