Home > Blockchain >  How to extract data from first brackets from sql server column?
How to extract data from first brackets from sql server column?

Time:10-22

How to extract data only bewteen first bracket from sql server column? Column data looks like,

       Pace - (SPE)-Elkart IN (OEM Sales)
       Pace - (CIS) - San Francisco (CIS)
       Pietila, Robert (4060)
       Pace - (STP) - St Paul Manufacturing

Result expected,

       SPE
       CIS
       4060
       STP
      

CodePudding user response:

Please try the following solution.

SQL

-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, tokens VARCHAR(1024));
INSERT INTO @tbl (tokens) VALUES
('Pace - (SPE)-Elkart IN (OEM Sales)'),
('Pace - (CIS) - San Francisco (CIS)'),
('Pietila, Robert (4060)'),
('Pace - (STP) - St Paul Manufacturing'),
('fafa'),
('dada )NO(');
-- DDL and sample data population, end

SELECT *
    , result = IIF(start > 0 and [end] > 0 AND [end] > start, SUBSTRING(tokens, start   1, [end] - start -1), NULL)
FROM @tbl
CROSS APPLY (SELECT start = CHARINDEX('(', tokens), [end] = CHARINDEX(')', tokens)) AS t;

Output

ID tokens start end result
1 Pace - (SPE)-Elkart IN (OEM Sales) 8 12 SPE
2 Pace - (CIS) - San Francisco (CIS) 8 12 CIS
3 Pietila, Robert (4060) 17 22 4060
4 Pace - (STP) - St Paul Manufacturing 8 12 STP
5 fafa 0 0 NULL
6 dada )NO( 9 6 NULL
  • Related