add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE tests(
path VARCHAR(100)
);
INSERT INTO tests VALUES
('Q:\12345\downloads\randomfilename.png'),
('Q:\123_4566\downloads\randomfilename.pdf'),
('Q:\CCCMUD\downloads\randomfilename.mp4'),
('Q:'),
('Q:\'),
('Q:\file.bmp'),
('Q:\test\file.bmp');

7 rows affected
SELECT *, SUBSTRING(path, pos1 + 1, pos2 - pos1 - 1)
FROM tests
CROSS APPLY (SELECT NULLIF(CHARINDEX('\', path), 0)) AS ca1(pos1)
CROSS APPLY (SELECT NULLIF(CHARINDEX('\', path, pos1 + 1), 0)) AS ca2(pos2)

path pos1 pos2 (No column name)
Q:\12345\downloads\randomfilename.png 3 9 12345
Q:\123_4566\downloads\randomfilename.pdf 3 12 123_4566
Q:\CCCMUD\downloads\randomfilename.mp4 3 10 CCCMUD
Q: null null null
Q:\ 3 null null
Q:\file.bmp 3 null null
Q:\test\file.bmp 3 8 test