How about this?
Function code:
IF OBJECT_ID (N'dbo.GetEloquaColumn', N'IF') IS NOT NULL
DROP FUNCTION dbo.GetEloquaColumn;
GO
CREATE FUNCTION [dbo].[GetEloquaColumn]
(
@Code_String NVARCHAR(200)
)
RETURNS TABLE
AS
RETURN
(
SELECT STUFF (Eloqua_Field_reference,1,1,'') Eloqua_Field_reference
FROM
(
SELECT ',' + Eloqua_Field_reference
FROM Slx_Code_refrence SCR
JOIN
(
SELECT
SUBSTRING(@Code_String,N,CHARINDEX(N',',@Code_String+N',',N)-N) AS ItemValue
FROM
dbo.Tally -- This is a numbers table ; Please visit this url
-- to know how it is built and what purpose it
-- serves
-- http://www.sqlservercentral.com/scripts/Advanced+SQL/62486/
WHERE
N BETWEEN 1 AND DATALENGTH(@Code_String)/2+1
AND SUBSTRING(N','+@Code_String,N,1) = N','
) SplitStrings (ItemValue)
ON
SplitStrings.ItemValue = SCR.slx_pat_codes
FOR XML PATH('')
) ElouqaTab (Eloqua_Field_reference)
);
GO
Test Harness:
IF OBJECT_ID('Slx_Code_refrence') IS NOT NULL
DROP TABLE Slx_Code_refrence
GO
CREATE TABLE Slx_Code_refrence
(
id INT IDENTITY(1,1) PRIMARY KEY,
slx_pat_codes VARCHAR(100),
Eloqua_Field_reference VARCHAR(100)
)
GO
INSERT INTO Slx_Code_refrence (slx_pat_codes, Eloqua_Field_reference)
SELECT 'HC01' , 'GON-IT'
UNION ALL SELECT 'HC02' , 'GON-MI'
UNION ALL SELECT 'HC03' , 'GON-03'
UNION ALL SELECT 'HC04' , 'GON-04'
UNION ALL SELECT 'HC05' , 'GON-05'
GO
SELECT * FROM dbo.[GetEloquaColumn] ('HC01,HC03')
IF OBJECT_ID('Slx_Code_refrence') IS NOT NULL
DROP TABLE Slx_Code_refrence
Please get back to us if you dont understand anything in the code...;-)