Come aggiorno i campi nella tabella con le stringhe selezionate casualmente da un elenco noto?

StackOverflow https://stackoverflow.com/questions/449337

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top