Come aggiorno i campi nella tabella con le stringhe selezionate casualmente da un elenco noto?
-
19-08-2019 - |
Domanda
Ho una tabella denominata " costruzioni " che contiene un campo varchar (50) chiamato " usa " ;. La tabella ha già diverse migliaia di record, tuttavia l '"uso" i valori sono tutti nulli. Vorrei aggiornare queste tabelle con valori scelti casualmente da un elenco di stringhe (ad es. Magazzino, ufficio, mercato, vendita al dettaglio, officina) . Vorrei anche lasciare alcuni di questi null per emulare l'utilizzo del mondo reale.
Come posso aggiornare un campo in una tabella con le stringhe selezionate casualmente da un elenco noto?
Soluzione
Questo potrebbe funzionare per te:
BEGIN;
UPDATE Buildings SET Use = (ARRAY['warehouse', 'office', 'market', 'retail', 'workshop', NULL])[floor(random() * 6.0) + 1];
COMMIT;
Altri suggerimenti
Non è casuale, ma questo è un modo semplice e piacevole per farlo, a condizione che tu abbia una distribuzione uniformemente uniforme degli ID:
UPDATE Buildings SET Use = 'warehouse' WHERE ID % 6 = 0
UPDATE Buildings SET Use = 'office' WHERE ID % 6 = 1
UPDATE Buildings SET Use = 'market' WHERE ID % 6 = 2
UPDATE Buildings SET Use = 'retail' WHERE ID % 6 = 3
UPDATE Buildings SET Use = 'workshop' WHERE ID % 6 = 4
UPDATE Buildings SET Use = NULL WHERE ID % 6 = 5
Questo sarà quasi sicuramente più facile e veloce di un "casuale" approccio. Inoltre, potrebbe non essere abbastanza casuale.