Mam ten stół:

TL_TCT_Id
3,8
3,4
3,8
3,8
3,8
3,8
3,8
3,8

TL_TCT_ID jest ciągiem (NVarchar (100))

I mam ten skrypt, który przechodzi, powiedzmy 8, ale żadne wyniki nie są wyciągane

ALTER PROCEDURE [dbo].[spGetComponentByIndex]
@index int
AS
BEGIN


WITH temporaryTable as
(SELECT ('''' + replace(TL_TCT_Id, ',', ''',''') + '''') as [TCT]
FROM TL_TemplateLayout)

select * from temporaryTable t
where cast(8 as nvarchar) in (t.TCT)

END

Co się dzieje z tym oświadczeniem? Jak mogę to naprawić, więc otrzymuję kilka wyników ze stołu?

-1
redoc01 6 grudzień 2019, 14:16

1 odpowiedź

Najlepsza odpowiedź

Operator w tym przypadku nie pomaga w tym przypadku. Używane jak:

select * 
from TL_TemplateLayout 
where concat(',', [TL_TCT_Id], ',') like concat('%,', 8, ',%') 

Zobacz Demo
Wyniki:

> | TL_TCT_Id |
> | :-------- |
> | 3,8       |
> | 3,8       |
> | 3,8       |
> | 3,8       |
> | 3,8       |
> | 3,8       |
> | 3,8       |
1
forpas 6 grudzień 2019, 11:44