11
votes

Vérifiez si la valeur dans la colonne de toutes les lignes est exactement la valeur

Par exemple, je veux suivre le numéro 2 comme cible

Ceci devrait renvoyer une indication positive: p> xxx pré>

ceci devrait renvoyer une indication négative: P>

ID       Status
123      1
432      1
531      1
123      1

sql

2 commentaires

Voulez-vous savoir si toutes les valeurs sont identiques ou si elles sont toutes exactement 2 (par exemple)?


Quel est le type de données de la colonne d'état? Et quelle est la base de données?


3 Réponses :


14
votes

existe code> devrait être utilisé de préférence à compter code> afin qu'il puisse revenir dès que la première ligne non correspondante est trouvée.

SELECT CASE
         WHEN NOT EXISTS(SELECT *
                         FROM   your_table
                         WHERE  status <> 2) THEN 'Y'
         ELSE 'N'
       END AS your_result  


3 commentaires

SELECT * peut être modifié en quelque chose comme Sélectionnez 1 comme amélioration


@demo qui n'est pas une amélioration. Stackoverflow.com/questions/1597442/... < / a>


Ah, je ne le savais pas. THX



3
votes

SELECT compte (*) où état! = 2


0 commentaires

3
votes
select exists 
( select status from T where status <> 2 or status is null)
as StatusContainsOtherThanTwoOrNullValue

0 commentaires