Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can this be done with one or two UPDATEs?
Message
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP1
Divers
Thread ID:
01535797
Message ID:
01535823
Vues:
36
>>>Hi,
>>>
>>>Say I have a table that has column MY_INT_FLD I(4). There could be some records in this table that have the same value in this field. And some records that have 0 in this field. I want to create one or two (or maybe even three) UPDATE command(s) that will set each record of this table to a unique value and it has to be greater than 0. Is it possible? TIA.
>>
>>Try:
>>
>>update myTable set Field = Field + 1000  + recno() ;
>>where Field in (select Field from myTable ;
>>group by Field having count(*) > 1) 
>>
>>I add 1000 assuming that the total number of records is less, so we always end up with unique values after update.
>
>Thank you. The goal was not just to have a unique value (what Sergey suggested would have done it). But the goal was to preserve all the existing values and only change the value in records where duplicate exists.

That's exactly what my script does, if you noticed. I only update fields which are duplicates. The having clause should be > 1, not > 0 (typo).
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform