SELECT * sauf une colonne : possible ?

SELECT * sauf une colonne : possible ? - SQL/NoSQL - Programmation

Marsh Posté le 09-08-2007 à 16:15:55    

Bonjour,
 
question simple :
 
j'ai une table avec 100 colonnes et je voudrais éviter de taper 99 noms de champ apres SELECT,
est il possible avec une bidouille de faire un SELECT * SAUF [colonnes a exclure] ?
 
Merci. :jap:  
 
 
ps:  
je SAIS que c'est contraire a la norme SQL.
je SAIS que je devrais taper les noms des 99 champs.
je SAIS que Select * c'est mal.
donc merci d'éviter de répondre ceci. J'ai mes raisons. :)

Reply

Marsh Posté le 09-08-2007 à 16:15:55   

Reply

Marsh Posté le 09-08-2007 à 16:17:36    

sous MySQL, de mémoire non...

Reply

Marsh Posté le 09-08-2007 à 16:25:55    

et SQL tout court ? :)

Reply

Marsh Posté le 09-08-2007 à 16:26:33    

drkarma a écrit :

Bonjour,
 
question simple :
 
j'ai une table avec 100 colonnes et je voudrais éviter de taper 99 noms de champ apres SELECT,
est il possible avec une bidouille de faire un SELECT * SAUF [colonnes a exclure] ?
 
Merci. :jap:  
 
 
ps:
je SAIS que c'est contraire a la norme SQL.
je SAIS que je devrais taper les noms des 99 champs.
je SAIS que Select * c'est mal.
donc merci d'éviter de répondre ceci. J'ai mes raisons. :)


...

Reply

Marsh Posté le 09-08-2007 à 16:30:48    

si tu as un outil tiers oui, genre toad le fait, sinon non

Reply

Marsh Posté le 10-08-2007 à 16:12:48    

select *
=> copie du résultat dans excel
=> virer la colonne en trop
 
[:magicbuzz]
 
select * signifie que tu fais des tests ou du oneshot. donc passer par excel ou autre soft tiers comme propose casimimir convient parfaitement.
 
si ça ne te convient pas, alors tape les 99 colonnes, parceque non seulement y'a pas d'autre solutions, mais surtout c'est le mal

Reply

Marsh Posté le 10-08-2007 à 16:36:16    

Tu complètes le nom du champ à exclure et le nom de la table, et tu exécutes ce code.
Il te retourneras une chaînes avec la liste des colonnes séparées par une virgule.
 

Code :
  1. $colonneEclue = 'leNomDeLaColonneExclue';
  2.   $sql = 'describe laTable';
  3.   $result = mysql_query($sql, $connexion);
  4.   $nomCol = '';
  5.   $i = 0;
  6.   while ($item = mysql_fetch_object($result))
  7.   {
  8.     if ($item -> Field != $colonneEclue)
  9.     {
  10.       $nomCol[$i] = $item -> Field;
  11.       $i ++;
  12.     }
  13.   }
  14.   $lesColonnes = implode(', ', $nomCol);

Reply

Marsh Posté le 13-08-2007 à 16:50:08    

merci

Reply

Marsh Posté le 19-08-2007 à 18:49:18    

Salut,  
 
Si tu es sous toad : F4 sur le nom de la table, tu selectionnes tes colonnes et tu le colles dans ton select.
 
Si tu es sous sqlplus :
> SPOOL toto.sql
> desc matable;
> SPOOL OFF
 
Tu recuperes le contenu du fichier toto.sql, tu l'edites en mode colonne avec un editeur de texte en supprimant ta colonne et en mettant des virgules, et tu met tout ca dans ton select.
 
+


Message édité par Noren2 le 19-08-2007 à 18:49:33
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed