我在sql表的列中有一个模式..
如果配对不成功, 重申配对过程。 如果配对仍然不成功,请更换电机。
我希望提取“配对仍然不成功”的文字。第二个文本后面的“.IF”在“,”之后,以及逗号之后的文本必须是REPLACE或REPAIR或TEST ..
我试过这种方式..
SUBSTRING(TextName,(PATINDEX('%。IF%,%',TextName)+ 9),20)
子字符串的第三部分目前是硬编码的,但是如何对查询进行分类。
由于 RAMM
答案 0 :(得分:3)
-- Test Data
DECLARE @T TABLE(
TextName NVARCHAR(4000)
)
INSERT INTO @T
SELECT 'IF PAIRING IS NOT SUCCESSFUL, REPEAT THE PAIRING PROCESS. IF PAIRING IS STILL NOT SUCCESSFUL, REPLACE THE MOTOR.'
INSERT INTO @T
SELECT 'IF NOT WITHIN THE SPECIFIED RANGE, TEST THE MOTOR FOR A SV, SG, OR AN OHR. IF THE CIRCUIT TESTS NORMAL, REPLACE THE MOTOR.'
-- Example Query
SELECT SUBSTRING(TextName, PosPeriod, PosComma - PosPeriod) 'String1'
FROM
(
SELECT TextName,
CHARINDEX('.', TextName) + 5 'PosPeriod', -- 5 is to skip over the '. IF '
CHARINDEX(',', TextName, CHARINDEX('.', TEXTName)+1 ) 'PosComma'
FROM @T
) TEMPTABLE