Loading

Comment transmettre plus d'une valeur dans un paramètre à utiliser dans SQL personnalisé

Date de publication: Jul 20, 2023
Tâche

Comment transmettre plusieurs chaînes via un paramètre dans SQL personnalisé. Y a-t-il un moyen de transmettre des valeurs séparées par des virgules dans un paramètre et de l'utiliser dans SQL personnalisé ?

 

Étapes

La requête ci-dessous s'applique à SQL pour Oracle.

select * from tablename where name in (
select regexp_substr(<Parameters.Parameter1>,'[^,]+', 1, level) from dual
connect by regexp_substr(<Parameters.Parameter1>, '[^,]+', 1, level) is not null)


La requête ci-dessous s'applique à SQL pour Microsoft SQL Server.

SELECT *
FROM Test.dbo.tablename a
JOIN (  
(SELECT Number = ROW_NUMBER() OVER (ORDER BY Number),  
        Item FROM (SELECT Number, Item = LTRIM(RTRIM(SUBSTRING(<Parameters.Parameter1>, Number,  
        CHARINDEX(',', <Parameters.Parameter1> + ',', Number) - Number)))  
    FROM (SELECT ROW_NUMBER() OVER (ORDER BY s1.[object_id])  
        FROM sys.all_objects AS s1 CROSS APPLY sys.all_objects) AS n(Number)  
    WHERE Number <= CONVERT(INT, LEN(<Parameters.Parameter1>))  
        AND SUBSTRING(',' + <Parameters.Parameter1>, Number, 1) = ','  
    ) AS y)) x on a.colname = x.Item

Ressources supplémentaires
Par conception, un paramètre ne peut prendre qu'une seule valeur à la fois.
Numéro d’article de la base de connaissances

001456708

 
Chargement
Salesforce Help | Article