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

Откуда: Москва
Сообщений: 58
--1--------------------------------------------------------------------------------------------
DECLARE @document varchar(max)
select 	@document = DISCUSSIONS.Text
from DISCUSSIONS
WHILE (CHARINDEX('>', @document) <> 0)
BEGIN
set @document = REPLACE (@document,
				SUBSTRING(@document,
					CHARINDEX('<', @document),
					(CHARINDEX('>', @document)-CHARINDEX('<', @document)+1)),'')
set @document = REPLACE (@document,' ',' ')
END
select @document
--2--------------------------------------------------------------------------------------------
DECLARE @document varchar(max);

SELECT	/*
		--,
		--,
		--,
	*/
		 convert(varchar(max),D.Text) --Комментарий
FROM	EVENTS as E 
LEFT JOIN USERS as U
ON E.ManagerId = U.PrincipalId
LEFT JOIN PRIORITIES as P
ON E.PriorityId = P.PriorityId
LEFT JOIN OBJECT_STATES as O_S
ON E.StateId = O_S.StateId
LEFT JOIN DISCUSSIONS as D
ON E.EventId = D.ObjectId
--3--------------------------------------------------------------------------------------------
--1- Вырезаем теги и т д из текста
Но !
Если инструкция SELECT возвращает более одной строки,
и переменная ссылается на нескалярное выражение,
ей присваивается значение, которое возвращается для выражения в последней строке результирующего набора.
Подскажите как использовать 1 во 2 селекте
17 сен 09, 11:23    [7671720]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
Maxx
Member [скрыт]

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

да точно так как и в случае 1, тока мусор будет :(

просто сделайте обработку поля таким же способом как и в случае 1, или подзапрос пишите в котором будет условие из запроса 1
17 сен 09, 11:28    [7671768]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
iljy
Member

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

самый простой и прямой путь - сделать UDF и SELECT Function(convert(varchar(max),D.Text)) from ...
17 сен 09, 11:31    [7671808]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
Maxx
Member [скрыт]

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

как вариант, тока вредли он проще чем подзапрос :)
17 сен 09, 11:41    [7671888]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
Glory
Member

Откуда:
Сообщений: 104760
MaxBod

Подскажите как использовать 1 во 2 селекте

Для этого таблицв из первого запроса как то должна быть связана с таблицами из второго запроса
17 сен 09, 11:50    [7671996]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
iljy
Member

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

там цикл
WHILE (CHARINDEX('>', @document) <> 0)
так что подзапрос в лоб не получится, придется делать через for xml или еще как.
17 сен 09, 12:36    [7672388]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
Maxx
Member [скрыт]

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

точно не заметил , ну тогда ваш вариант
17 сен 09, 12:37    [7672397]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
MaxBod
Member

Откуда: Москва
Сообщений: 58
Спасибо
17 сен 09, 14:15    [7673283]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
MaxBod
Member

Откуда: Москва
Сообщений: 58
А можно по подробнее про
iljy

самый простой и прямой путь - сделать UDF и SELECT Function(convert(varchar(max),D.Text)) from ...
17 сен 09, 16:22    [7674507]     Ответить | Цитировать Сообщить модератору
 Re: Если инструкция SELECT возвращает более одной строки  [new]
iljy
Member

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

а что именно? открываете БОЛ, user defined function - и читать до полного просветления.
17 сен 09, 16:36    [7674655]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить