1
votes

Afficher le message de validation avec un StudentId en double un par un

Je veux vérifier la validation de l'identifiant en double dans le serveur SQL, cette grille de validation s'affiche numéro de ligne, message de validation et identifiant en double du serveur SQL

Je ne comprends pas comment puis-je faire?

L'aide est vraiment appréciée

Créer une table p >

Insert into Tbl_Student(RowID,StudentID) values (1,101)
Insert into Tbl_Student(RowID,StudentID) values (2,102)
Insert into Tbl_Student(RowID,StudentID) values (3,101)
Insert into Tbl_Student(RowID,StudentID) values (4,102)
Insert into Tbl_Student(RowID,StudentID) values (5,103)

Insérer des enregistrements

    CREATE TEMPORARY TABLE IF NOT EXISTS Tbl_Student
    (RowID INT PRIMARY KEY auto_increment, StudentID BIGINT);


 entrez la description de l'image ici a >

S'il vous plaît laissez partager si une solution là-bas

Merci


5 commentaires

C'est la syntaxe mysql


@GordonLinoff si une solution est disponible, vous pouvez partager la syntaxe du code de serveur SQL


Aucune prévention non applicable ici, je dois afficher le message de validation uniquement pour studentId


dans votre échantillon 101 n'est pas dupliqué .. expalin mieux


Double possible de Recherche de valeurs en double dans une table SQL


4 Réponses :


0
votes

Voici le code T-SQL, vous devrez peut-être le transformer au format MySql:

Select * from(
      Select RowId, Count(*) Over(Partition By StudentId Order By RowId) as Cnt From [YourTable]
) as K
Where Cnt>1

Vous pouvez également utiliser Row_Number ou Count code> fonction d'agrégation pour obtenir le même résultat également.

Voici de nombreuses solutions MySql pour ce problème:

Rechercher des enregistrements en double dans MySQL


0 commentaires

0
votes

Pour afficher les doublons, je ferais:

select
  RowID, 
  concat('Student ', StudentID, ' is duplicate') as StudentID
from Tbl_Student where StudentID in (
  select StudentID from Tbl_Student group by StudentID having count(*) > 1
)


0 commentaires

1
votes

Essayez la requête suivante,

SELECT RowID, CONCAT('StudentID ',StudentID, ' is Duplicate) AS Error FROM Tbl_Student WHERE StudentID IN (SELECT StudentID FROM Tbl_Student GROUP BY StudentID  HAVING COUNT(*) > 1)


0 commentaires

0
votes

Vous pouvez utiliser une jointure sur la requête dont le nombre d'ID strundet> 1

  select id,  student_id, concat('Stundent id' , student_id, ' is duplicated')
  from  my_table m
  inner join  (
    select student_id 
    from my_table  
    group by student_id 
    having count(*) > 1  
  ) t on t.student_id  = m.student_id


0 commentaires