【发布时间】:2021-01-08 19:56:03
【问题描述】:
我在解析特定数据字段时遇到问题,我不知道如何解决它,所以我希望我能对如何解决它有所了解。
我有一个字段 [ItemCategory] 包含...的实例
- 实例:TennisShoes.Laces
- 实例:HikingBoot-Dr.Marten.Laces
(我无法将分隔符从“.”更改为“|”,因为我不控制源)
用于分离实例的代码如下:
SELECT
[Program] = LTRIM(RTRIM(LEFT(c.[ItemCategory], CHARINDEX('.',c.[ItemCategory] + '.') - 1)))
,[Category] = LTRIM(RTRIM(RIGHT(c.[ItemCategory],LEN(c.[ItemCategory]) - CHARINDEX('.',c.[ItemCategory]))))
所以当 DHikingBoot-Dr.Marten.Laces 实例通过它变成的代码时我的问题。
[Program] = HikingBoot-Dr
[Category] = Marten.Laces
我怎样才能忽略第一个'。'并在第二个“.”上定界,同时仍保持第一个实例的正确性。
感谢您的宝贵时间。任何建议都会有所帮助。
【问题讨论】:
-
什么版本的sql server?在所有数据中都是一致的吗?您最多有 3 个时段,如果是 3 个,则跳过第一个?还是总是以
.Laces结尾? -
确定您正在使用的 sql server 的实际版本总是一个好主意。 TRIM 现在可以完成 LTRIM 和 RTRIM 的工作。
标签: sql sql-server tsql split