Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Parameter issue

Author  Topic 

tistarv
Starting Member

1 Post

Posted - 2009-08-02 : 03:00:52

Hi friends
I expect the following query output.
Select EmpId,EmpCode From Emp Where EmpId In(1,2,3)

Alter FUNCTION [dbo].[fnGetEmpCode]
(
@ParamStr Varchar(100)
)
RETURNS TABLE
AS
RETURN
--Select EmpId,EmpCode From Emp Where EmpId In(1,2,3)
Select EmpId,EmpCode From Emp Where EmpId In(@ParamStr)

--------------------------------
--Declare @ParamStr As Varchar(100)
--Set @ParamStr='1,2,3'
--Select * From dbo.fnGetEmpCode(@ParamStr)

I want to pass a set of emp ids as parameter. I dont know how to pass it, as an array or else as string parameter. The column EmpId is Int.
Plz help.





khtan
In (Som, Ni, Yak)

17689 Posts

Posted - 2009-08-02 : 04:04:17
see http://www.sommarskog.se/arrays-in-sql-2005.html


KH
[spoiler]Time is always against us[/spoiler]

Go to Top of Page

bklr
Master Smack Fu Yak Hacker

1693 Posts

Posted - 2009-08-03 : 00:41:33
try like this

DECLARE @ParamStr VARCHAR(256)
SET @ParamStr = '1,2,3'

Select EmpId,EmpCode From Emp Where '%,' + @ParamStr+ ',%' LIKE '%,' + CAST( EmpId AS VARCHAR(255)) +',%'

exec('Select EmpId,EmpCode From Emp Where CAST( EmpId AS VARCHAR(255)) in('+@ParamStr+')')

Select EmpId,EmpCode From Emp Where patindex('%,' + CAST( EmpId AS VARCHAR(255)) +',%',','+@ParamStr+',' )>0
Go to Top of Page
   

- Advertisement -