2013-04-25 129 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