Как извлечь данные из переменной строки и использовать в запросе выбора - PullRequest
0 голосов
/ 23 марта 2011

У меня есть вопрос относительно того, как извлечь данные из строки (переменной длины) и включить их в запросы выбора.

Например, у меня есть значение в Portfolio_full_name как TS.PDO.CTS

(Portfolio_full_name = TS.PDO.CTS)

Я хотел бы получить каждое слово перед. и поместите его в другие поля.

Portfolio_name = TS
Portfolio_category = PDO
Portfolio_subcategory = CTS

Я хочу включить это в оператор select до условия where (возможно, создать оператор CASE?) Не могли бы вы сообщить мне, как могЯ делаю это?

1 Ответ

0 голосов
/ 23 марта 2011

В SQL Server (при условии, что формат установлен на NAME.CATEGORY.SUBCATEGORY, и у вас есть столбец Portfolio_full_name в некоторой таблице, называемый здесь atable, и обновляются столбцы Portfolio_name, Portfolio_category и Portfolio_subcategory в той же таблице):

UPDATE atable
SET
  Portfolio_name = SUBSTRING(s.Portfolio_full_name, 1, DotPos1 - 1),
  Portfolio_category = SUBSTRING(s.Portfolio_full_name, DotPos1 + 1, DotPos2 - DotPos1 - 1),
  Portfolio_subcategory = SUBSTRING(s.Portfolio_full_name, DotPos2 + 1, FullLen - DotPos2)
FROM (
  SELECT
    Portfolio_full_name,
    DotPos1 = CHARINDEX('.', Portfolio_full_name),
    DotPos2 = CHARINDEX('.', Portfolio_full_name, CHARINDEX('.', Portfolio_full_name) + 1),
    FullLen = LEN(Portfolio_full_name)
  FROM (
    SELECT Portfolio_full_name FROM atable
  ) s
) s
WHERE atable.Portfolio_full_name = s.Portfolio_full_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...