2013-04-25 8 views
12

Come posso convertire un GUID che è 36 caratteri in un VARCHAR (32)?Converti GUID in varchar (32)

Sto provando a copiare i dati da una tabella a un'altra. Ci sono due colonne simili da queste due tabelle.

  1. Table1.colx è un GUID quindi è 36 caratteri in totale a causa dei trattini
  2. La colonna corrispondente è table2.colx ma è un VARCHAR (32)

Sto cercando un modo per convertire un GUID in VARCHAR, ma devo rimuovere i trattini. Finora sono stato infruttuoso nei miei tentativi di trovare un modo per farlo.

risposta

28

Presumo che si tratti di SQL Server, dal tag SSMS.

Convertire il GUID in una stringa, quindi sostituire i trattini con le stringhe vuote:

REPLACE(CAST(table1.colx AS VARCHAR(36)),'-','') 
+0

Ahhhh, che fa un mondo di senso. Grazie mille. Stavo pensando troppo da vicino a cercare di fare tutto in un solo passo. – Jfabs

+0

Potreste forse aiutarmi con un esempio di conversione in stringa prima? Mi chiedo se dovrei creare un tavolo temporaneo o qualcosa del genere ... – Jfabs

+1

È nella risposta: 'CAST (table1.colx AS VARCHAR (36))'. Ciò restituirà la rappresentazione di stringa del GUID. Puoi usare questo ovunque dovresti fare riferimento alla colonna (in SELECT, WHERE, JOIN, ecc.). Se hai problemi a capire dove metterlo, apri una nuova domanda e includi il tuo codice. Ping me qui e sarò felice di rispondere. –