Отдельные числа и [] данные в столбце

#sql #sql-server #tsql

#sql #sql-сервер #tsql

Вопрос:

У меня есть данные в одном из столбцов, которые выглядят следующим образом: АЛАН, ДОНАЛЬД [1234], мне нужно разделить это на два столбца, например Имя (ALAN, DONALD), идентификатор (1234) Я попробовал следующий код, и я смог получить идентификатор, но не имя

 create table  #test(NAME_ID VARCHAR(50))
INSERT INTO  #TEST VALUES ('ALAN,DONALD [1234])' )

SELECT CAST (substring(NAME_ID,charindex('[',NAME_ID) 1,charindex(']',NAME_ID)-charindex('[',NAME_ID)-1) AS VARCHAR (102) ) AS MRN FROM #TEST
  

Комментарии:

1. Подсказка … используйте LEFT и CHARINDEX.

2. вам следует рассмотреть возможность помещения этого кода в определяемую пользователем табличную функцию.

Ответ №1:

Вы могли бы сделать это на основе индекса скобки:

 SELECT 
    RTRIM(SUBSTRING(NAME_ID, 0, CHARINDEX('[',NAME_ID))) AS Name,
    CAST (SUBSTRING(NAME_ID,CHARINDEX('[',NAME_ID) 1,CHARINDEX(']',NAME_ID)- 
    CHARINDEX('[',NAME_ID)-1) AS VARCHAR (102) ) AS MRN 
FROM #TEST