Помогите с запросом ...in(@ListId)
Z_Alex
Дата: 16.10.2003 03:56:54
В хранимую процедуру передаю праметр @listid nvarchar(100)
и хочу выбрать записи с кодами, которые перечислены в списке,
например
@Listid = '2,3,4'
Select t1.id,t1.name
From t1
Where t1.id in (@ListId)
но мне пишет что ошибка конвертации nvarchar в int
Как быть?
Спасибо
brahew
Дата: 16.10.2003 05:45:17
Select t1.id,t1.name
From t1
Where cast(t1.id as varchar) in (@ListId) |
|
работает
Alex Antonoff
Дата: 16.10.2003 05:52:13
brahew:
Вот это посоветовал ... В данном случае будет проверка на точное совпадение id с набором id, что выполнится только когда в списке одно значение ...
Z_Alex Можно использовать insert exec
AlexeyU
Дата: 16.10.2003 06:01:55
hi
можно поодробнее об INSERT EXEC?
а то не совсем понятно.
--
---
Alexey
Alex Antonoff
Дата: 16.10.2003 06:19:01
declare @lst varchar(100), @sql varchar(8000)
create table #t(id int)
set @lst = '1, 2, 3'
set @sql = 'select id from sysobjects where cast([id] as varchar) in (' + @lst + ')'
insert into #t exec(@sql)
select * from #t
Ну а дальше используй эту табличку там, где нужно .. А вообще это где то в факе было описано ...
Glory
Дата: 16.10.2003 10:14:25
Z_Alex
Дата: 17.10.2003 04:12:47
Спасибо, сделал через Exec
Glory
Дата: 17.10.2003 09:56:21
Хм, на мой взгляд не самый лучший выбор.