【发布时间】:2021-04-22 14:15:49
【问题描述】:
我需要根据结果使用某个关键字查找子字符串,我需要在 SQL 中删除某些字符
例如。我有一个名为 component 的列...我需要提取此字符串之后的值:
"^BY5,3.0,133^FO73,324^B2N,,N,N,N^FV"
组件列值:
^FO41,18^A0N,46,49^FDCAT.NO.^FS^BY5,3.0,133^FO73,324^B2N,,N,N,N^FV23 MAJOR SX^FS
^FO41,18^A0N,46,49^FDCAT.NO.^FS^BY5,3.0,133^FO73,324^B2N,,N,N,N^FVTest Value for 34 Inch^FS,N
以下查询正在运行并给我一半的结果:
SELECT
SUBSTRING(component, CHARINDEX('^BY5,3.0,133^FO73,324^B2N,,N,N,N^FV',component) + LEN('^BY5,3.0,133^FO73,324^B2N,,N,N,N^FV'), LEN(component)) AS component
FROM
Equipments
WHERE
Type = 'CA'
结果:
23 MAJOR SX^FS
Test Value for 34 Inch^FS,N
我需要再次删除^ 之后的所有内容,所以我的结果应该具有正确的值
23 MAJOR SX
Test Value for 34 Inch
下面的查询给了我正确的结果“23 Major SX”,但它只针对一行。如何合并这两个查询,以便获取超过 15 条记录的列的值
SELECT LEFT("23 MAJOR SX^FS", CHARINDEX('^', "23 MAJOR SX^FS") - 1)
【问题讨论】:
标签: sql char subquery substring