2013-04-25 130 views
12

如何將GUID爲36的字符轉換爲VARCHAR(32)?將GUID轉換爲varchar(32)

我試圖從一個表複製數據到另一個。這兩個表中有兩個類似的列。

  1. Table1.colx是一個GUID所以它是在總長度36字符由於連字符
  2. 對應的列是table2.colx但它是一個VARCHAR(32)

我正在尋找一種方法將GUID轉換爲VARCHAR,但我必須刪除連字符。到目前爲止,我一直試圖找到一種方法來實現這一目標,但我一直未能成功。

回答

28

我假設這是來自SSMS標記的SQL Server。

轉換的GUID爲字符串,然後用空字符串替換連字符:

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

AHHHH,這使得感的世界。非常感謝你。我一直在想盡量做到這一點。 – Jfabs 2013-04-25 18:53:56

+0

你能幫我一個先把它轉換成字符串的例子嗎?我想知道是否應該設置臨時表或其他東西... – Jfabs 2013-04-25 19:09:52

+1

它在答案:'CAST(table1.colx AS VARCHAR(36))'。這將返回GUID的字符串表示形式。你可以在任何你通常引用列的地方使用它(在SELECT,WHERE,JOIN等中)。如果您無法弄清楚在哪裏放置這個,請打開一個新問題幷包含您的代碼。在這裏平息我,我很樂意回答。 – 2013-04-25 19:13:50