получение информации из поля значения ключа sql - PullRequest
0 голосов
/ 30 декабря 2010

Я пытаюсь написать SQL-запрос, чтобы получить некоторую информацию из поля «ключ-значение».

  • Пример поля: A<1,?,'wfinitiation'=A<1,?,'DocID'=56581,'DocVersion'=0>>

Можно ли с помощью функции SQL выбрать только DocID?

  • Результат в примере будет: 56581

Какую функцию я могу использовать?

Thx

1 Ответ

1 голос
/ 30 декабря 2010

Если вам нужно запросить отдельные значения, содержащиеся в этом столбце, вам следует рассмотреть возможность извлечения информации и ее сохранения в реляционном формате.В настоящее время вы нарушаете первую нормальную форму.

При этом вы можете использовать substring и charindex для этого.

DECLARE @key VARCHAR(20)
SET @key='DocID';

DECLARE @Search VARCHAR(30)
SET @Search='''' + @key + '''=';

WITH your_table(col)
     AS (SELECT 'A<1,?,''wfinitiation''=A<1,?,''DocID''=56581,''DocVersion''=0>>')

SELECT Substring(col, Charindex(@Search, col) + Len(@Search),
              Charindex(',',
              REPLACE(col, '>', ','), Charindex(@Search, col)) - (
              Charindex(@Search, col) + Len(@Search) )) AS value
FROM   your_table  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...