SQL - 基于“在第 N 个和第 N 个分隔符之间”的分隔字符串

斯梅格黑德

我有一个带有 ITEM 列的 ITEM 表。他们都是一串。此列中的一些示例产品可能是:

AAA-BBB-CCC.B.S
AAA-BBB-CCC.B.M
BAA-123A-DDDD.01.28
BAA-123A-DDDD.20.28
CCC-AACD-CCDD.MB.28.L
CCC-AACD-CCDD.MB.29.L
CCC-AACD-CCDD.FC.28.R
CCC-AACD-CCDD.FC.29.R
  • 前3部分(用连字符隔开)是产品代码
  • 第 1 期和第 2 期之间的任何东西都是颜色
  • 在第 2 个时期之后但在第 3 个时期之前的任何东西(如果确实存在第 3 个时期)都是项目大小
  • 如果有第 3 个句点,则在它之后的任何物品都适合(例如 S/R/L 腿长的牛仔裤)

我想将这些元素分成单独的列,但由于“不总是存在”的项目适合属性,以及试图将数据分开的“在 x 之后但在 y 之前”的性质,我正在努力。到目前为止,我已经得到了以下内容,它获取了项目大小,但是如果有合适的礼物,那么它会得到它,这使得它不是很有用。

这是在 SQL Server Management Studio 2016 中。

SELECT ITEM
,RIGHT(ITEM, CHARINDEX('.',REVERSE(ITEM)) -1) 'Size'
FROM ITEM
约翰·卡佩莱蒂

这是解析和创建列的一种方法。然而,你让我失去了哪个元素是什么。

例子

Declare @YourTable table (ID int,Item varchar(100))
Insert Into @YourTable values
(1,'AAA-BBB-CCC.B.S'),
(2,'AAA-BBB-CCC.B.M'),
(3,'BAA-123A-DDDD.01.28'),
(4,'BAA-123A-DDDD.20.28'),
(5,'CCC-AACD-CCDD.MB.28.L'),
(6,'CCC-AACD-CCDD.MB.29.L'),
(7,'CCC-AACD-CCDD.FC.28.R'),
(8,'CCC-AACD-CCDD.FC.29.R')

Select A.ID
      ,B.*
 From  @YourTable A
 Cross Apply (
                Select Pos1 = ltrim(rtrim(xDim.value('/x[1]','varchar(max)')))
                      ,Pos2 = ltrim(rtrim(xDim.value('/x[2]','varchar(max)')))
                      ,Pos3 = ltrim(rtrim(xDim.value('/x[3]','varchar(max)')))
                      ,Pos4 = ltrim(rtrim(xDim.value('/x[4]','varchar(max)')))
                      ,Pos5 = ltrim(rtrim(xDim.value('/x[5]','varchar(max)')))
                      ,Pos6 = ltrim(rtrim(xDim.value('/x[6]','varchar(max)')))
                From  (Select Cast('<x>' + replace((Select replace(replace(A.Item,'.','-'),'-','§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml) as xDim) as A 
             ) B

退货

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用T-SQL,从字符串中返回第n个分隔元素

来自分类Dev

第n个孩子的行为像第n个孩子

来自分类Dev

根据最后N个分隔符分割字符串

来自分类Dev

提取第n个字符和另一个n个字符之间的字符串

来自分类Dev

第K个元素N * N和向量

来自分类Dev

Scala:从元组数组/ RDD获取第n个元素的和

来自分类Dev

第5个孩子和第n个孩子

来自分类Dev

CSS div第n个子元素,每第2个和第3个文本加粗

来自分类Dev

在带有分隔符的字符串中查找和删除子字符串(开始:55555,结束:\ n)

来自分类Dev

Shell命令,用于在巨大的逗号分隔字符串行的第n个元素中每隔n个元素插入一个换行符

来自分类Dev

在第n个组和第n组上汇总SQL行

来自分类Dev

拆分字符串,直到第n次出现分隔符

来自分类Dev

如何从字符串SQL Server中选择第n个和第(n + 1)个单词

来自分类Dev

提取第n个pattern1和第m个pattern2之间的字符串-sed / awk

来自分类Dev

按第N个分隔符分割文本并转置Google表格

来自分类Dev

SQL:为第n个客户查找第n个订单

来自分类Dev

如何从Excel 2010中字符的第N个和第N + 1个字符出现之间提取字符串?

来自分类Dev

模板参数包访问第N个类型和第N个元素

来自分类Dev

如何将逗号分隔的字符串动态拆分为在第n个逗号处拆分的字符串数组?

来自分类Dev

在某个序列的第n个和第m个发生之间获取子字符串

来自分类Dev

如何从php中第N个和第N + 1个“ breakword”之间的另一个字符串中提取字符串?

来自分类Dev

在第n个分隔符处将字符串拆分为JavaScript中的数组

来自分类Dev

在带有分隔符的字符串中查找和删除子字符串(开始:55555,结束:\ n)

来自分类Dev

sed:是否可以选择替换每行匹配的第 N 个和第 M 个匹配项?

来自分类Dev

或者我 xpath 这样基于第 n 个元素和属性值

来自分类Dev

如何在 Bash 中没有“内存问题”的每第 n 个分隔符后插入 \n

来自分类Dev

正则表达式:获取两个分隔符之间的第 n 个字符

来自分类Dev

我试图在熊猫中通过用分隔符分割列值来获得空间的第 n 个值

来自分类Dev

获取分隔符之间的第 N 个子字符串的公式

Related 相关文章

  1. 1

    使用T-SQL,从字符串中返回第n个分隔元素

  2. 2

    第n个孩子的行为像第n个孩子

  3. 3

    根据最后N个分隔符分割字符串

  4. 4

    提取第n个字符和另一个n个字符之间的字符串

  5. 5

    第K个元素N * N和向量

  6. 6

    Scala:从元组数组/ RDD获取第n个元素的和

  7. 7

    第5个孩子和第n个孩子

  8. 8

    CSS div第n个子元素,每第2个和第3个文本加粗

  9. 9

    在带有分隔符的字符串中查找和删除子字符串(开始:55555,结束:\ n)

  10. 10

    Shell命令,用于在巨大的逗号分隔字符串行的第n个元素中每隔n个元素插入一个换行符

  11. 11

    在第n个组和第n组上汇总SQL行

  12. 12

    拆分字符串,直到第n次出现分隔符

  13. 13

    如何从字符串SQL Server中选择第n个和第(n + 1)个单词

  14. 14

    提取第n个pattern1和第m个pattern2之间的字符串-sed / awk

  15. 15

    按第N个分隔符分割文本并转置Google表格

  16. 16

    SQL:为第n个客户查找第n个订单

  17. 17

    如何从Excel 2010中字符的第N个和第N + 1个字符出现之间提取字符串?

  18. 18

    模板参数包访问第N个类型和第N个元素

  19. 19

    如何将逗号分隔的字符串动态拆分为在第n个逗号处拆分的字符串数组?

  20. 20

    在某个序列的第n个和第m个发生之间获取子字符串

  21. 21

    如何从php中第N个和第N + 1个“ breakword”之间的另一个字符串中提取字符串?

  22. 22

    在第n个分隔符处将字符串拆分为JavaScript中的数组

  23. 23

    在带有分隔符的字符串中查找和删除子字符串(开始:55555,结束:\ n)

  24. 24

    sed:是否可以选择替换每行匹配的第 N 个和第 M 个匹配项?

  25. 25

    或者我 xpath 这样基于第 n 个元素和属性值

  26. 26

    如何在 Bash 中没有“内存问题”的每第 n 个分隔符后插入 \n

  27. 27

    正则表达式:获取两个分隔符之间的第 n 个字符

  28. 28

    我试图在熊猫中通过用分隔符分割列值来获得空间的第 n 个值

  29. 29

    获取分隔符之间的第 N 个子字符串的公式

热门标签

归档