🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / MSSQL RMOS / StringArray sql de virgül ile ayrılan columnu satıra çevirir

1-) MSSQL RMOS - StringArray sql de virgül ile ayrılan columnu satıra çevirir

 

KULLANIMI :

 

       AND (Rsat_Durum in (SELECT fieldvalue FROM dbo.stringArray('A,K',',')))

and Convert(date,Rsat_Tarih) >= '2021-08-06'

 

FUNCTİON :

 

CREATE FUNCTION [dbo].[StringArray]

(

@ParamaterList VARCHAR(MAX),

    @Delimiter CHAR(1)

)

RETURNS @ReturnList TABLE

(

  FieldValue VARCHAR(MAX)

)

AS BEGIN

    DECLARE @ArrayList TABLE

        (

          FieldValue VARCHAR(MAX)

        )

 

        

    DECLARE @Value VARCHAR(MAX)

    DECLARE @CurrentPosition INT

 

    SET @ParamaterList = LTRIM(RTRIM(@ParamaterList))

        + CASE WHEN RIGHT(@ParamaterList, 1) = @Delimiter THEN ''

               ELSE @Delimiter

          END

    SET @CurrentPosition = ISNULL(CHARINDEX(@Delimiter, @ParamaterList, 1), 0)  

 

    IF @CurrentPosition = 0

 

        INSERT  INTO @ArrayList ( FieldValue )

                SELECT  @ParamaterList

    ELSE

        BEGIN

            WHILE @CurrentPosition > 0

                BEGIN

                    SET @Value = LTRIM(RTRIM(LEFT(@ParamaterList,

                                                  @CurrentPosition - 1))) --make sure a value exists between the delimiters

                    IF LEN(@ParamaterList) > 0

                        AND @CurrentPosition <= LEN(@ParamaterList)

                        BEGIN

                            INSERT  INTO @ArrayList ( FieldValue )

                                    SELECT  @Value

                        END

                    SET @ParamaterList = SUBSTRING(@ParamaterList,

                                                   @CurrentPosition

                                                   + LEN(@Delimiter),

                                                   LEN(@ParamaterList))

                    SET @CurrentPosition = CHARINDEX(@Delimiter,

                                                     @ParamaterList, 1)

                END

        END

      

    INSERT  @ReturnList ( FieldValue )

            SELECT  FieldValue

            FROM    @ArrayList

    RETURN

   END

 

 

 

 2022 Ağustos 22 Pazartesi
 450