Поменять часть значения из одного столбца в другой столбец? - PullRequest
1 голос
/ 16 февраля 2012

Я очень новичок в командах SQL, поэтому, пожалуйста, не обращайте на меня внимания.

У меня есть одна таблица:

dbo.Product

Две колонки:

SKU      Name
---      ----
100A-B   (F102397) 1 AFFF C-103

Я хочу поменять SKU (100A-B) на ТОЛЬКО ЧАСТЬ Имени (F102397) без скобок в столбце SKU.

Так было бы как:

SKU      Name
---      ----
F102397  (100A-B) 1 AFFF C-103

И, к вашему сведению, столбец «Имя» не всегда соответствует. То есть это не всегда будет похоже на «1 AFFF C-103». Иногда это может быть «1AFFFC-103» или «1AFFF C-103» и т. Д., Но с другими значениями. Вам нужно беспокоиться о второй половине, когда есть пробелы / нет пробелов?

В любом случае, делать это? Любая помощь будет принята с благодарностью. :) Я работаю с SQL-Server 2005.

** РЕДАКТИРОВАТЬ **

Еще примеры и что я пытаюсь получить из этого.

Пример того, как выглядит большинство данных. Это беспорядок с пробелами в некоторых SKU, но я не могу их изменить.

И я сохраняю () в поле "Имя".

SKU      Name
---      ----
100A-B   (F102397) 1 AFFF C-103
101 A-F  (F011889) TEST ITEM
101 U-X  (F060796) TEST ITEM 2
102A-B   (F102497) TEST ITEM 3

РЕЗУЛЬТАТ

SKU      Name
---      ----
F102397  (100A-B) 1 AFFF C-103
F011889  (101 A-F) TEST ITEM
F060796  (101 U-X) TEST ITEM 2
F102497  (102A-B) TEST ITEM 3

1 Ответ

2 голосов
/ 16 февраля 2012

Вы должны взглянуть на доступные строковые функции .Часто с ними можно что-то приготовить.

update dbo.Product 
set SKU = substring(Name, 2, charindex( ')', Name)-2),
    Name = stuff(Name, 2, charindex( ')', Name)-2, SKU)

Это предполагает, что всегда есть ( в начале поля Имя.Где-то в поле имени всегда будет ).Ни Имя, ни SKU не содержат нулевых значений.
Если это не так, вы должны указать в своем вопросе, каким должен быть результат.

Если вам нужно только запросить данные вместо обновления useизбранный устав.

select substring(Name, 2, charindex( ')', Name)-2),
       stuff(Name, 2, charindex( ')', Name)-2, SKU)
from YourTableName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...