![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
без sp_executeSQL не обойтись? [D7, MSSQL]
interbase © (2008-12-24 16:13:00)Всем доброго времени суток!
есть процедурка(MS SQL Server 2005):
CREATE PROCEDURE aaa(@a VARCHAR(1000))
AS
BEGIN
SELECT *
FROM table
WHERE id IN (@a)
END
вызов execute aaa '1,2,3,4'
так не работает... не ругается, но и не делает выборку. Без executeSQL никак?
sniknik (2008-12-24 16:34:00) [21]можно и не окружать, а использовать charindex вместо, но вот добавить в искомое запятую и ее же добавить к конце строки необходимо... иначе с такой например строкой '1,22,33,4' будут нежелательные результаты в виде 2, 3.
Медвежонок Пятачок (2008-12-24 16:30:00) [22]ну блин, сказал же что там просто идея.
Медвежонок Пятачок (2008-12-24 16:29:00) [23]лучше все айди не просто кастить а приклеивать слева справа загогулины.
для случая вроде такого
id = 1
@a = '11,12,12'
Johnmen (2008-12-24 16:29:00) [24]
> Медвежонок Пятачок © (24.12.08 16:27) [5]
Чему соответствует x в вопросе автора?
И как быть с id=7 и @a='33,77'?
interbase (2008-12-24 16:28:00) [25]
> Медвежонок Пятачок © (24.12.08 16:19) [1]
спасибки! Тока %-тами надо окружить.
Медвежонок Пятачок (2008-12-24 16:27:00) [26]это то, чего должно быть больше патиндекс.
если не найдено, то не помню что там вертается. ноль или минус один.
Johnmen (2008-12-24 16:26:00) [27]
> Медвежонок Пятачок © (24.12.08 16:19) [1]
А что такое x?
Медвежонок Пятачок (2008-12-24 16:22:00) [28]ну да. там просто общая идея как наколоть судьбу
Ega23 (2008-12-24 16:22:00) [29]
> cast(id as varchar)
Я не знаю как в 2005, но я бы добавил cast(id as varchar( max))
В 2000 это воспринималось по-умолчанию как varchar(32)
Медвежонок Пятачок (2008-12-24 16:19:00) [30]where patindex(cast(id as varchar),@a) > x