MS SQL ->UPDATE заявка

3 отговора 460 прегледа
#1

MS SQL ->UPDATE заявка

Имам nvarchar поле : 'Дума1 Дума2 Дума3 Дума4'. Трябва всички полета започващи с 'Дума1 Дума2 Дума3', да останат 'Дума3 Дума4'.

Идеи как да стане?

Мерси предварително!

Отговор
в отговор на _danitu #2

Re: MS SQL ->UPDATE заявка

UPDATE myTable SET wordsField = SUBSTRING_INDEX(wordsField,' ',-2) WHERE wordsField LIKE 'Дума1 Дума2 Дума3%'

Това връща последните 2 срички. Така върши ли ти работа или?

Има три вида хора. Част от проблема, част от решението и част от пейзажа.
Отговор
в отговор на mr.vain #3

Re: MS SQL ->UPDATE заявка

1) Substring_index is not recognized function name .....

2) Знам със сигурност колко и какви са първите думи, последните може да са 2,5,10 .........

Да обясня какво правя .... Във въпросното поле има текст, който смислово може да се раздели на две части - примерно : 1ва част- име на фирма, 2 ра част- някакви данни за фирмата. Задачката е двете неща да се разделят в отделни полета от таблицата. Имената на фирмите са краен брой (към 200 със различните варианти на изписване на едно и също нещо), вторите части са хиляди.

До тук преместих имената(първите ен думи в друго поле) със заявки : UPDATE table SET new = 'name' WHERE old LIKE 'name%';. Сега трябва да резна имената от старото поле.

Отговор
в отговор на mr.vain #4

Re: MS SQL ->UPDATE заявка

Всъщност май измислих това:

UPDATE Test
SET word = SUBSTRING(word, LEN('Дума1 Дума2 Дума3') + 1, LEN(word))
WHERE (word LIKE 'Дума1 Дума2 Дума3%');

Отговор