Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите с запросом  [new]
temoxa
Member

Откуда:
Сообщений: 405
Всем привет. Подскажите пож есть таблица с текстовым значения название и уточнение в [] - этим они разнятся! Так вот как можно найти объенить значения с изменением значения в [] на пустое значение?
Вот пример данных:

К сообщению приложен файл. Размер - 12Kb
23 июл 12, 11:16    [12901036]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
temoxa
Member

Откуда:
Сообщений: 405
В результате надо получить:

ACCORD DT 6м [] 6?
23 июл 12, 11:17    [12901045]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
temoxa,

declare @rr varchar(20)
set @rr ='ACCORD DT 6м[dfdf] 6'
select substring(@rr,1, charindex('[',@rr,1)-1 )
23 июл 12, 11:36    [12901198]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
select rr, rr2
from tab
group by substring(rr,1, charindex('[',rr,1)-1 )+' []', rr2
23 июл 12, 11:45    [12901291]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
temoxa
Member

Откуда:
Сообщений: 405
trew,

вторая выборка не срабатывает!

а как можна провести замену что бы результат был слегка другой:

ACCORD DT 6м []

ACCORD DT 8м []

AMAZONE ZG-B 8200 Special 24 []

К сообщению приложен файл. Размер - 31Kb
23 июл 12, 11:51    [12901345]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
temoxa,

select  substring(rr,1, charindex('[',rr,1)-1 )+' []' as a1, max(rr2) as a2
from tab
group by substring(rr,1, charindex('[',rr,1)-1 )+' []'
23 июл 12, 11:56    [12901397]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
temoxa
Member

Откуда:
Сообщений: 405
trew,

Msg 537, Level 16, State 3, Line 17
Invalid length parameter passed to the LEFT or SUBSTRING function.
23 июл 12, 11:59    [12901431]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
temoxa,

7526685
23 июл 12, 12:07    [12901516]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
temoxa
Member

Откуда:
Сообщений: 405
trew, а в столбце с названиям отсутствуют значения с []?
23 июл 12, 12:41    [12901824]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
temoxa,

Вам же уже дали наводку где копать на простых примерах.
Используйте функции left, stuff, charindex, patindex, substring и прочие строковые функции, адаптируя их работу под свои данные, о которых вам известно лучше чем кому бы то ни было. А то вам дают пример, а вы "а если вот так", "а если вот этак" и т.д. так можно до бесконечности выяснять какое разнообразие форматов у вас там встречается. Приложите немного собственных усилий.
23 июл 12, 12:49    [12901888]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
user89
Member

Откуда:
Сообщений: 2083
temoxa,

???

declare @t table(s varchar(max))
insert @t
  select 'ACCORD DT 6м [bred] z' union all select 'ACCORD DT 6м [bred]' union all select 'ACCORD DT 8м []' union all select 'ACCORD DT 8м [' 
  union all select 'AMAZONE ZG-B 8200 Special 24 ]' union all select 'aabb'

select s, isnull(stuff(s, charindex(char(91),s)+1, nullif(charindex(char(93),s), 0) - nullif(charindex(char(91),s), 0) - 1, ''), s) [new]
from @t

Результат:
snew
ACCORD DT 6м [bred] zACCORD DT 6м [] z
ACCORD DT 6м [bred]ACCORD DT 6м []
ACCORD DT 8м []ACCORD DT 8м []
ACCORD DT 8м [ACCORD DT 8м [
AMAZONE ZG-B 8200 Special 24 ]AMAZONE ZG-B 8200 Special 24 ]
aabbaabb

З.Ы. А этот совет помог?
12901455
23 июл 12, 14:43    [12902815]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить