Affichage de la condition Where conditionnelle dans SQL SERVER

Lapin qui court

J'essaie de réaliser quelque chose comme ça.

SELECT Name, Age From Employee 
WHERE ID=1 
AND CASE(WHEN backguid='00000000-0000-0000-0000-000000000000' 
THEN (State=@state and City = @city) 
ELSE (buildingID=backguid) 
END

Je voulais afficher la colonne État et ville dans la clause where uniquement lorsque backguid est vide, c'est-à-dire 00000000-0000-0000-0000-000000000000. Sinon, je veux afficher une seule colonne, c'est-à-dire buildingID=backguid

Le code global que j'ai utilisé ici est :

DECLARE 
@firstName varchar(50),
@buildingID XML='<items><item ID="76BA34CE-273A-46AC-B4EF-C99A3E93DD21" /></items>',
@fetchedBuildValue uniqueidentifier,
@State VARCHAR(50) ='WA',
@city VARCHAR(50) ='Spokane'

set @fetchedBuildValue = (SELECT data.item.value('./@ID', 'uniqueidentifier') AS PId
FROM @buildingID.nodes('/items/item') data(item));
SELECT
PortalUser.[ID]
,PortalUser.[Status]
,PortalUser.[Type]
,PortalUser.[Prefix]
,PortalUser.[Suffix]
,PortalUser.[FirstName]
,PortalUser.[MiddleName]
,PortalUser.[LastName]
,PortalUser.[Title]
,PortalUser.[Department]
,PortalUser.[URL]
,PortalUser.[TenantID]
,PortalUser.[DefaultPropertyID]
,PortalUser.[DoNotEmail]
,PortalUser.[Profile]
,PortalUser.[PrimaryPhoneNumberType]
,PortalUser.[PrimaryPhoneNumber]
,PortalUser.[BusinessPhoneNumber]
,PortalUser.[HomePhoneNumber]
,PortalUser.[MobilePhoneNumber]
,PortalUser.[FaxPhoneNumber]
,Building.BuildingName
FROM 
PortalUser
INNER JOIN Relationship AS T_U ON T_U.Target = PortalUser.ID AND T_U.TargetType = 0 AND T_U.SourceType = 6
INNER JOIN Tenant ON T_U.Source = Tenant.ID
WHERE
(@firstname IS NULL OR PortalUser.FirstName LIKE '%' + @firstname + '%')
AND CASE(WHEN @fetchedBuildValue ='00000000-0000-0000-0000-000000000000' 
THEN (State=@state AND City = @city) 
ELSE (buildingID=backguid) 
END

Cependant, je ne suis pas en mesure d'y parvenir via Case. Je ne sais pas ce qui me manque.

Derviş Kayımbaşıoğlu

Cela peut aider

SELECT Name, Age From Employee 
WHERE ID=1 AND (
   (backguid='00000000-0000-0000-0000-000000000000'  and State=@state and City = @city)
OR ( backguid !='00000000-0000-0000-0000-000000000000' and buildingID=backguid)
)

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

Instruction conditionnelle SQL Server dans la clause Where

SQL Server - Utilisation de la condition Where

Comment utiliser la clause case dans la condition where à l'aide de SQL Server?

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

Utilisation de la fonction conditionnelle, condition dans la définition

Clause where conditionnelle SQL Server

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

Clause WHERE conditionnelle dans la requête Oracle SQL

Comment faire une instruction conditionnelle dans la clause SQL where

Condition de format dans la mise en forme conditionnelle

Alternative de serveur SQL à OR dans la condition where

Personnaliser la condition de clause where dans SQL

Application de la condition OR à la fonction SUM dans SQL Server

Contrainte conditionnelle dans SQL Server

Affichage de la plage de dates sélectionnée dans SQL Server

balise meta de la fenêtre d'affichage conditionnelle dans index.html

Utilisation de DATETIME dans la clause WHERE dans SQL Server

SQL Server : implémenter "IN(...)" dans la condition de jointure Linq

Affichage de la table entière après suppression des caractères dans SQL Server

Jointure conditionnelle SQL Server de quatre tables dans une vue

Condition SQL - AND dans la clause WHERE

Fuseau horaire de SQL Server dans la clause where

Instruction SQL Server CASE dans la clause Where de Select

Affichage des valeurs de lignes en colonnes dans SQL Server

Affichage du mois sous forme de colonnes dans SQL Server

Combiner la requête de jointure avec la requête de condition Where dans SQL

condition if dans la clause where de MariaDB

Affichage uniquement de la valeur maximale de l'instruction case dans l'instruction group by in SQL Server Management Studio

Modification XML conditionnelle dans SQL Server

TOP liste

  1. 1

    Filtrer le dataframe basé sur plusieurs colonnes d'un autre dataframe

  2. 2

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  3. 3

    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

  4. 4

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  5. 5

    Microsoft.WebApplication.targets

  6. 6

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

  7. 7

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  8. 8

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  9. 9

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  10. 10

    comment afficher un bouton au-dessus d'un autre élément ?

  11. 11

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  12. 12

    Filtrer les données en fonction des conditions d'une trame de données

  13. 13

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  14. 14

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  15. 15

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  16. 16

    Pourquoi Phantomjs ne fonctionne pas avec ce site ?

  17. 17

    Stop jQuery execution after one time execution

  18. 18

    Concaténer des variables dans ansible

  19. 19

    Comment calculer la probabilité du graphique de densité?

  20. 20

    php ajouter et fusionner des données de deux tables

  21. 21

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

chaudétiquette

Archive