Instruction conditionnelle SQL Server dans la clause Where

Umesh AP

J'ai besoin d'écrire une requête SQL qui récupère les enregistrements en fonction des fichiers RoleId.

par exemple

  • Si RoleId = 1 ALORS _t1.CreatedBy = @LoginUserId.

Pour les autres RoleId, je veux tous les enregistrements de la table sans aucune condition sur la CreatedBycolonne.

Je fournis un exemple de requête selon mes besoins.

SELECT _t1.*
FROM [dbo].[TblPassDetail] _t1 WITH (NOLOCK) 
INNER JOIN [dbo].[TblVisitor] _t2 WITH (NOLOCK) ON _t1.VisitorId = _t2.SrNo 
WHERE _t1.LocationId = @LocationId
  AND _t1.CreatedBy = (CASE WHEN @RoleId = 1 THEN @LoginUserId ELSE 0 END) 

Le problème est que si fourni @RoleIdest 1, j'obtiens tous les enregistrements pour cela LoginUserId, mais si @RoleIdc'est autre chose que 1, alors je n'obtiens aucun enregistrement en tant qu'enregistrements de vérification SQL pour _t1.CreatedBy = 0lesquels il n'existe pas dans la table.

Une suggestion sur la façon de réécrire ma requête?

Tim Biegeleisen

Vous pouvez reformuler la partie difficile de votre WHEREclause en ceci :

@RoleId = 1 AND _t1.CreatedBy = @LoginUserId
OR
@RoleId <> 1

En d'autres termes, si le RoleIdest 1, l'utilisateur connecté doit être le créateur. Mais pour les autres RoleIdvaleurs, il n'y a pas de dépendance de l'utilisateur connecté. Voici la requête complète :

SELECT _t1.*
FROM [dbo].[TblPassDetail] _t1 WITH (NOLOCK) 
INNER JOIN [dbo].[TblVisitor] _t2 WITH (NOLOCK)
    ON _t1.VisitorId = _t2.SrNo 
WHERE
    _t1.LocationId = @LocationId AND
    (
        (@RoleId = 1 AND _t1.CreatedBy = @LoginUserId) OR
        @RoleId <> 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

Comment faire une instruction conditionnelle dans la clause SQL where

SQL Server: instruction CASE dans la clause WHERE avec condition IN

Instruction SQL Server CASE dans la clause Where de Select

Clause where conditionnelle SQL Server

SQL: instruction IF / CASE dans la clause WHERE

Postgres : instruction conditionnelle dans la clause with

Clause WHERE conditionnelle dans la requête Oracle SQL

Comment écrire la clause where dans l'instruction pivot dans SQL Server

SQL SP - Instruction Case dans la clause Where

Condition d'instruction SQL dans la clause where

clause where conditionnelle sql

Affichage de la condition Where conditionnelle dans SQL SERVER

Comment utiliser plusieurs colonnes dans la clause WHERE dans SQL Server dans l'instruction de mise à jour

Instruction de cas SQL Server dans la clause select

Comment utiliser les colonnes de la table de gauche dans la clause where de l'instruction select de droite dans l'instruction de jointure SQL Server

Existe-t-il un moyen d'avoir une instruction "IN" conditionnelle dans la clause WHERE d'une procédure?

instruction if / case dans la clause where

Instruction SQLite if dans la clause WHERE

Oracle - Instruction IF dans la clause WHERE

MySQL, instruction IF dans la clause WHERE ?

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

Utilisation de DATETIME dans la clause WHERE dans SQL Server

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

Clause conditionnelle where dans Oracle

Clause WHERE conditionnelle dans KDB?

SQL Server: comparer la colonne Nullable dans la clause where

Utilisation de l'instruction IF dans une clause Where dans SQL Server

Utilisation d'une instruction CASE dans une clause WHERE dans SQL Server

Requête Laravel: valeur conditionnelle dans la clause Where

TOP liste

  1. 1

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  2. 2

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  3. 3

    Microsoft.WebApplication.targets

  4. 4

    knn classification 10 plis de l'outil et du tri

  5. 5

    Quelle est la relation entre le modèle et le tableau ? C'est compliqué

  6. 6

    Créer un système Buzzer à l'aide de python

  7. 7

    Fonction de puissance en Java

  8. 8

    opérations en virgule flottante dans go

  9. 9

    Comment définir la couleur de l'intersection dans un diagramme de Venn?

  10. 10

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  11. 11

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  12. 12

    AutoMapper.Collection.EFCore - Erreur générée lors de la configuration

  13. 13

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  14. 14

    Comment remplir les valeurs manquantes avec plusieurs colonnes dans R

  15. 15

    Comment puis-je ajouter un UIView sous mon contrôleur de barre d'onglets par programme?

  16. 16

    Yat-il un référentiel maven application Java à démarrer rapidement 11

  17. 17

    Comment rechercher des éléments dans une ArrayList? - Java

  18. 18

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  19. 19

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  20. 20

    Sélectionnez le bouton radio sur la saisie de texte

  21. 21

    Placez le modeBar en haut au centre à l'aide de plotly.js

chaudétiquette

Archive