Home Forums Programming General Convert IIF to Case Statements and Instr to charindex or Like RE: Convert IIF to Case Statements and Instr to charindex or Like

  • In the absence of test data here is my spin on it

    DECLARE @Client_Domains TABLE

    (

    Client_VndName NVARCHAR(100) ,

    Client_Type NVARCHAR(100) ,

    CorpVndNbr INT

    )

    INSERT INTO @Client_Domains

    ( Client_VndName, Client_Type, CorpVndNbr )

    VALUES ( N'Test 1 CO Lala', 'CltDom', 0 ),

    ( N'Test 2 CO Lala', 'CltDom', NULL ),

    ( N'Test 3 CO Lala', 'ABCDom', 1 ),

    ( N'Test 4 CO Lala', 'ABCDom', NULL ),

    ( N'Test 5 INC Lala', 'CltDom', NULL ),

    ( N'Test 6 Lala', 'CltDom', 1 ),

    ( N'Test 7 Lala', 'CltDom', NULL )

    SELECT Client_VndName ,

    CASE WHEN CHARINDEX(' CO', Client_VndName) > 0

    AND SUBSTRING(Client_VndName,

    CHARINDEX(' CO', Client_VndName), 4) = ' CO '

    THEN CHARINDEX(' CO', Client_VndName)

    WHEN CHARINDEX(' INC', Client_VndName) > 0

    THEN CHARINDEX(' INC', Client_VndName)

    WHEN CHARINDEX(' LLC', Client_VndName) > 0

    THEN CHARINDEX(' LLC', Client_VndName)

    ELSE 0

    END AS EndPt ,

    SUBSTRING(Client_VndName, 1,

    CASE WHEN CHARINDEX(' CO', Client_VndName) > 0

    AND SUBSTRING(Client_VndName,

    CHARINDEX(' CO', Client_VndName), 4) = ' CO '

    THEN CHARINDEX(' CO', Client_VndName)

    WHEN CHARINDEX(' INC', Client_VndName) > 0

    THEN CHARINDEX(' INC', Client_VndName)

    WHEN CHARINDEX(' LLC', Client_VndName) > 0

    THEN CHARINDEX(' LLC', Client_VndName)

    ELSE 0

    END) AS ShortName

    FROM @Client_Domains

    WHERE ( Client_Type = 'CltDom' )

    AND ( CorpVndNbr = 0

    OR CorpVndNbr IS NULL

    )

    AND CASE WHEN CHARINDEX(' CO', Client_VndName) > 0

    AND SUBSTRING(Client_VndName,

    CHARINDEX(' CO', Client_VndName), 4) = ' CO '

    THEN 1

    WHEN CHARINDEX(' INC', Client_VndName) > 0 THEN 1

    WHEN CHARINDEX(' LLC', Client_VndName) > 0 THEN 1

    ELSE 0

    END = 1

    And the final output

    Client_VndNameEndPtShortName

    Test 1 CO Lala7Test 1

    Test 2 CO Lala7Test 2

    Test 5 INC Lala7Test 5