SQL Server matches and gets the correct value from the second table

advertisements
        IF OBJECT_ID('tempdb..#TABLE1') IS NOT NULL DROP TABLE #TABLE1
        IF OBJECT_ID('tempdb..#TABLE2') IS NOT NULL DROP TABLE #TABLE2

        CREATE TABLE #TABLE1
        (
            CODE_NAME_T1 NVARCHAR(20)
        )

        CREATE TABLE #TABLE2
        (
            CODE_NAME_T2 NVARCHAR(20)
        )

        INSERT INTO #TABLE1(CODE_NAME_T1)
        VALUES             ('BBX123')
                          ,('B/X230')
                          ,('1BC030')
                          ,('BB01BC')
                          ,('BN01BB')           

        INSERT INTO #TABLE2(CODE_NAME_T2)
        VALUES             ('B')
                          ,('BB')

        --SELECT 1
        SELECT T1.CODE_NAME_T1
            ,'CODE_NAME_T2' = (SELECT TOP 1 T2.CODE_NAME_T2
                               FROM #TABLE2 T2
                               WHERE T1.CODE_NAME_T1 LIKE '%' + T2.CODE_NAME_T2 + '%')
        FROM #TABLE1 T1

        --SELECT 2
        SELECT T1.CODE_NAME_T1
              ,T2.CODE_NAME_T2
        FROM #TABLE1 T1
        LEFT OUTER JOIN #TABLE2 T2
        ON T1.CODE_NAME_T1 LIKE '%' + T2.CODE_NAME_T2 + '%'

        IF OBJECT_ID('tempdb..#TABLE1') IS NOT NULL DROP TABLE #TABLE1
        IF OBJECT_ID('tempdb..#TABLE2') IS NOT NULL DROP TABLE #TABLE2

RESULTS

SELECT 1

CODE_NAME_T1   |    CODE_NAME_T2
---------------|----------------
BBX123         |    B
B/X230         |    B
1BC030         |    B
BB01BC         |    B
BN01BB         |    B

SELECT 2

CODE_NAME_T1   |    CODE_NAME_T2
---------------|----------------
BBX123         |    B
BBX123         |    BB
B/X230         |    B
1BC030         |    B
BB01BC         |    B
BB01BC         |    BB
BN01BB         |    B
BN01BB         |    BB

in above code I am trying to get correct value in second column from #TABLE2 and tried two SELECT approaches but not getting the result which I am after.

ASK:
Basically I need code which should look in #TABLE1 values and if any character appearing once or twice then it should bring the correct value from #TABLE2. Like above in first result in second column all values are “B” but it should be “BB” for “BBX123” because here the “B” character is appearing twice and it should “B” for “B/X230” because here “B” character is appearing once.

So complete result should be.

Result required

CODE_NAME_T1   |    CODE_NAME_T2
---------------|----------------
BBX123         |    BB
B/X230         |    B
1BC030         |    B
BB01BC         |    BB
BN01BB         |    BB

Is there any way to achieve this? Do I need to do some kind of character counting?

Note- that “B” character is an example here as it can be any character which appearing once or twice in #TABLE1


You can use query like this

select CODE_NAME_T1,
case  when charindex('BB', code_name_t1)>0 then 'BB'
      when (charindex('B',CODE_NAME_T1)>0 and charindex('BB', code_name_t1)=0) then 'B' else NULL end as 'B'
 from #TABLE1

then you can join with your second table to get other details