Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
667 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL Server : boucle sur une table et affichage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL Server : boucle sur une table et affichage

n°1742558
Sbartacus
Posté le 06-06-2008 à 15:51:00  profilanswer
 

Bonjour
 
Je souhaite faire un programme tout simple, pour commencer le T-SQL.
Je souhaite parcourir une table d'entiers.
 
A chaque enregistrement, si l'entier est > 10, cela affichera "Enregistrement > à 10", sinon cela affichera "Enregistrement < 10".
Je ne sais pas comment récupérer une ligne d'une requête en T-SQL.  
Si vous pouviez juste me dire par où commencer à chercher, où me montrer l'allure du script, ça m'aiderait à me lancer.
 
Quand je fais  

Code :
  1. While(select * from TableEntier) > 0


 
Cela me renvoie une erreur. Auriez-vous une idée de la syntaxe de l'algo ?  
Merci. :)


Message édité par Sbartacus le 07-06-2008 à 16:17:00
mood
Publicité
Posté le 06-06-2008 à 15:51:00  profilanswer
 

n°1743118
HappyHarry
Posté le 08-06-2008 à 13:06:05  profilanswer
 

l'itératif c'est mal en SQL ... tu dois penser "ensembles" pour faire quelque chose de correct et performant

n°1743122
Sbartacus
Posté le 08-06-2008 à 13:24:53  profilanswer
 

Par ensemble, tu entends une requête qui restreint le nombre de résultats ?
En fait, j'ai vu qu'il y avait possibilité de créer des curseurs en T-SQL.
Ce que je veux faire plus tard, c'est parcourir chaque ligne, modifier les champs et insérer ces champs modifiés dans une nouvelle table, à chaque ligne.
 
Car j'ai une table T1, et une table T2. Elles n'ont pas les mêmes contraintes, et n'ont pas la même structure.  
Donc je récupère les données de T1, je les modifie et les insère dans T2.

n°1743160
HappyHarry
Posté le 08-06-2008 à 15:52:08  profilanswer
 

poste toujours les structures de tes tables, dans 95+ % des cas il n'y a pas besoin de curseur, il est préférable de chercher à les éviter

n°1743186
Sbartacus
Posté le 08-06-2008 à 18:17:26  profilanswer
 

Ok merci.
J'ai pas les tables sous les yeux, je les poste dès demain à mon stage. :)

n°1743241
moi23372
Posté le 08-06-2008 à 20:56:10  profilanswer
 

a mon avis, un INSERT INTO t (SELECT ...) serait de loin beaucoup plus performant.

n°1743331
Sbartacus
Posté le 09-06-2008 à 09:37:48  profilanswer
 

Bien en fait, je ne sais pas si cela sera possible :  
 
Mes tables possèdent beaucoup de champs, voici pour commencer leur structure simplifiée :
 
Table 1 :
Civilité
Nom
Prénom
Adresse
 
Table 2 :
Civilité (NOT NULL, check Civilite = 'Mr' or Civilit='Mme' or Civilite='Mlle')
Nom (NOT NULL)
Prenom(NOT NULL)
Adresse_num (NOT NULL)
Adresse_type (NOT NULL)
Adresse_nom (NOT NULL)
 
Là où ça pose problème, c'est le champs Adresse. Je prends le champs Adresse de Table1. S'il commence par un nombre, j'insère ce nombre dans (Table2.Adresse_num), j'insère le mot suivant dans (Table2.Adrese_type), et ce qui reste dans (Table2.Adresse_type).

n°1743689
HappyHarry
Posté le 09-06-2008 à 20:09:52  profilanswer
 

insert into T2
 select T1.civilité, T1.nom, T1.prenom, case when T1.adresse > '9' then NULL else substring(T1.adresse, 1, patindex(' ', T1.adresse) end, case when T1.adresse > '9' then NULL else substring
 
etc etc etc (flemme :p )
 
 
mais bon le principal problème vient plutôt du fait que la table T1 n'est pas forcément adaptée à ce qu'on en fait (je suppose qu'il y a des contraintes "historiques" )


Message édité par HappyHarry le 09-06-2008 à 20:12:38
n°1743989
Sbartacus
Posté le 10-06-2008 à 10:07:38  profilanswer
 

Merci beaucoup, j'ai utilisé ce même principe pour remplir T2. :)
Pour le champ des adresses je n'ai pas encore tenté de peur de détruire la base, mais je vais tester cela.
 
Encore merci. :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL Server : boucle sur une table et affichage

 

Sujets relatifs
Mise à jour des index d'une table mysqlimpossible de trouver le problème : affichage d'image
Caractere spéciaux et SQL[SQL]Problème requête simple: jointure externe
[RESOLU] PHP+Array + boucle whileProblème de format de date SQL
[Shell] boucle avec des nom de fichier avec espace[TRANSACT SQL]Problème division sql serveur
Pb d'affichage dans une boucle 
Plus de sujets relatifs à : SQL Server : boucle sur une table et affichage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR