Clause where conditionnelle SQL Server

Jason hier

J'ai la clause where suivante qui commence par ce qui suit:

DECLARE @Birthdate = 1

SELECT ... 
FROM ... 
JOIN ...
WHERE A.organization_id = 1
  AND LEFT(A.[first_name], 3) = LEFT(B.[first_name], 3)
  AND LEFT(A.[last_name], 3) = LEFT(B.[last_name], 3)

Après cela, je voudrais exécuter des clauses supplémentaires sous condition.

Par exemple:

  • si @Birthdate = 1alors ajoutezAND A.[birthdate] = B.[birthdate]
  • sinon, n'ajoutez rien

J'ai essayé ce qui suit et aucun ne semble fonctionner correctement:

Ex 1:

 AND (@Birthdate = 1 AND A.[birthdate] = B.[birthdate])

Ex 2:

AND ((@Birthdate = 1 AND A.[birthdate] = B.[birthdate]) OR 
     (@Birthdate = 0 AND (A.[birthdate] = B.[birthdate] OR 
                          A.[birthdate] <> B.[birthdate])))

Des suggestions sur ce que je fais mal?

RToyo

Vous pouvez utiliser un orpour appliquer votre filtre ou simplement renvoyer toutes les lignes lorsque@Birthdate = 0

SELECT
    ...
FROM
    ...
WHERE
    (
        -- Apply the filter if applicable
        (
            @Birthdate = 1
            and A.[birthdate] = B.[birthdate]
        )
        -- Or return everything
        or @Birthdate <> 1
    )

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

SQL SELECT avec clause WHERE conditionnelle

Clause where conditionnelle PostgreSQL

SQL Server INSERT INTO avec clause WHERE

Clause where conditionnelle SQL Server basée sur une variable déclarée

Clause WHERE conditionnelle LINQ incluant plusieurs conditions

Clause WHERE conditionnelle utilisant IN

SQL Server - Clause WHERE avec CASE

Clause WHERE conditionnelle dans la requête Oracle SQL

Clause conditionnelle "WHERE" PL / SQL "Where"

Clause SQL conditionnelle Where renvoyant différentes lignes

Clause WHERE conditionnelle dans KDB?

Clause Where avec une condition conditionnelle

SQL Server: concaténation et clause where

SQL Server 2019 ignorant la clause WHERE?

clause where conditionnelle

SQL Server: clause where conditionnelle (Equal) OR (LessThan ou Equal)

clause where conditionnelle sql

Clause WHERE conditionnelle T-SQL basée sur le résultat de la clause WHERE

sql procédure stockée conditionnelle clause where renvoyant une erreur de syntaxe

Instruction conditionnelle SQL Server dans la clause Where

ORM MySQL - clause WHERE conditionnelle

Clause CASE/EXISTS IN WHERE dans SQL Server

Select unique rows with where in clause (SQL Server)

Clause conditionnelle where dans Oracle

Syntaxe SQL Server sur la clause WHERE ?

Affichage de la condition Where conditionnelle dans SQL SERVER

How to compare columns in a where clause in SQL Server?

Comment faire une instruction conditionnelle dans la clause SQL where

Connaissance de Rusty T-SQL et connexion conditionnelle dans la clause where

TOP liste

chaudétiquette

Archive