Home Forums SQL Server 2005 T-SQL (SS2K5) SQL function returning NULL value though the data is present. RE: SQL function returning NULL value though the data is present.

  • 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...;-)