如何在SQL中从STRING_SPLIT拆分结果中获取指定值?
如何从STRING_SPLIT的结果集中获取指定内容?
当然可以,有几种直接的方法实现:
方法一:直接通过值筛选
利用WHERE子句配合IN关键字,直接指定要获取的目标值:
SELECT value FROM STRING_SPLIT('3G-4RPE-L250-S80-27K-UNV-DIM-WT-RG1-CP-S(9)', '-') WHERE value IN ('4RPE', 'RG1');
执行后会直接返回4RPE和RG1这两个结果。
方法二:按位置筛选
如果知道目标值在原字符串中的位置(比如4RPE是第2个分段,RG1是第9个分段),可以用窗口函数标记位置后筛选:
WITH SplitValues AS ( SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS segment_position FROM STRING_SPLIT('3G-4RPE-L250-S80-27K-UNV-DIM-WT-RG1-CP-S(9)', '-') ) SELECT value FROM SplitValues WHERE segment_position IN (2, 9);
注意:
STRING_SPLIT返回的结果顺序与原字符串中分段的顺序一致,因此可以通过位置精准定位。
内容的提问来源于stack exchange,提问作者Data Scientist
相关产品推荐
相关产品推荐

