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

Откуда:
Сообщений: 97
Здравствуйте, собственно весь вопрос в описан теме. Надо в запросе вытянуть данные из строк, которые представлены в виде:
Черный (Белый), и разбить на две части - отдельно черный, отдельно белый - в разные столбики для представления на страничке. Например - таблица
Cvet
ID       name        Color
23234  Roza         Красный (Белый)

Спасибо )
23 авг 11, 10:34    [11161922]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5122
substring, charindex, replace
23 авг 11, 10:36    [11161939]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
SANTA1
Member

Откуда:
Сообщений: 97
Дедушка,

Извините, но я никак не могу понять, как их использовать в простом запросе типа
Select Cvet.name, Cvet.Color From Cvet
23 авг 11, 11:46    [11162585]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5122
вам нужно вот так?
IDnameColor1Color2
23234RozaКрасныйБелый
23 авг 11, 12:05    [11162732]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
SANTA1
Member

Откуда:
Сообщений: 97
Дедушка,

Да, мне нужно именно так. Дело в том, что запрос у меня намного более сложный, но мне надо для примера - дальше я сам разберусь. Спасибо.
23 авг 11, 12:09    [11162762]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
SANTA1
Member

Откуда:
Сообщений: 97
Еще одно...
В столбике Сolor записи могут быть как "Красный (Белый)" так и просто - "Черный" (для примера).
23 авг 11, 12:10    [11162783]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
komrad
Member

Откуда:
Сообщений: 5758
SANTA1
Еще одно...
В столбике Сolor записи могут быть как "Красный (Белый)" так и просто - "Черный" (для примера).


вы уже перечислите все варианты в конце-то концов! ;)


в лоб можно так :

create table cvet (id int, [name] varchar(50),color varchar(50))
go
insert into cvet(id,[name],color)
select 23234,'Roza','Красный (Белый)'
union all
select 23234,'Romashka','Черный'
go
select case 
   when CHARINDEX(' ', color)<>0  then
       left(color,charINDEX(' ',color)-1)
   else color end,
case 
   when color like '%(%)%' then
     SUBSTRING(color,charINDEX('(',color)+1,charINDEX(')',color)-charINDEX('(',color)-1)
   else '' end
from cvet 
go
23 авг 11, 12:17    [11162840]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
iljy
Member

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

 declare @t table( color varchar(100))
 insert @t values('Красный (Белый)'),('Черный')
 
 select color, RTRIM(LEFT(color, isnull(N1-1, 8000))) c1, SUBSTRING(color, N1+1, N2-N1-1) c2
 from(
	 select color, nullif(CHARINDEX('(',color),0) N1, nullif(CHARINDEX(')', color),0) N2
	 from @t
)t
23 авг 11, 12:20    [11162876]     Ответить | Цитировать Сообщить модератору
 Re: Разделить строку в запросе выборки на две части  [new]
SANTA1
Member

Откуда:
Сообщений: 97
!!!!
Ну народ вы и шарите в своих вопросах!!!!
Надеюсь и я когда-нибудь доросту до вашего уровня...
Спасибо огромное - уже разобрался как сделать в своем решении, походу надо еще понять как оно работает ;-)
23 авг 11, 12:35    [11163055]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить