Ho una tabella in SQL Server 2000 che sto cercando di interrogare in modo specifico. Il modo migliore per mostrare questo è con i dati di esempio.query SQL per restituire un singolo record per ogni valore univoco in una colonna
Ecco, [Addresses]
:
Name Street City State
--------------------------------------------------------
Bob 123 Fake Street Peoria IL
Bob 234 Other Street Fargo ND
Jim 345 Main Street St Louis MO
Questo è in realtà un esempio semplificato della struttura della tabella effettiva. La struttura del tavolo è completamente fuori dal mio controllo. Ho bisogno di una query che restituirà un singolo indirizzo per nome. Non importa quale indirizzo, solo che ce n'è solo uno. Il risultato potrebbe essere questo:
Name Street City State
--------------------------------------------------------
Bob 123 Fake Street Peoria IL
Jim 345 Main Street St Louis MO
Ho trovato una domanda simile here, ma nessuna delle soluzioni indicate lavoro nel mio caso perché non ho accesso a CROSS APPLY
, e chiamando MIN()
su ogni colonna mescolare diversi indirizzi insieme e anche se non mi interessa quale record viene restituito, deve essere una riga intatta, non un mix di righe diverse.
Le raccomandazioni per modificare la struttura della tabella non mi saranno d'aiuto. Sono d'accordo che questo tavolo è terribile, (è peggio di quanto mostrato qui) ma questo fa parte di un grande database ERP che non posso cambiare.
ci sono circa 3000 record in questa tabella. Non c'è una chiave primaria.
Qualche idea?
può darvi un'idea il numero di record nella tabella? Ho alcune idee su come farlo ma potrebbe non essere molto veloce se ci sono migliaia/milioni di record. –
Avete delle chiavi primarie su questo tavolo? –
~ 3000 record e nessun PK, abbastanza sorprendentemente. Ho aggiunto queste informazioni alla domanda. – recursive