2013-04-25 38 views
12

Làm cách nào để chuyển đổi GUID là 36 ký tự thành VARCHAR (32)?Chuyển đổi GUID thành varchar (32)

Tôi đang cố sao chép dữ liệu từ bảng này sang bảng khác. Có hai cột tương tự từ hai bảng này.

  1. Table1.colx là một GUID để nó là 36 ký tự trong tổng số do có dấu gạch nối
  2. Các cột tương ứng là table2.colx nhưng nó là một VARCHAR (32)

Tôi đang tìm cách chuyển đổi GUID thành VARCHAR, nhưng tôi phải loại bỏ dấu gạch nối. Cho đến nay tôi đã không thành công trong nỗ lực của tôi để tìm một cách để làm điều này.

Trả lời

28

Tôi giả định đây là SQL Server, từ thẻ SSMS.

Chuyển đổi GUID thành một chuỗi, sau đó thay thế các dấu gạch nối với chuỗi rỗng:

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

Ahhhh, mà làm cho một thế giới của cảm giác. Cảm ơn nhiều. Tôi đã suy nghĩ quá thận trọng khi cố gắng làm tất cả trong một bước. – Jfabs

+0

Có lẽ bạn có thể giúp tôi với một ví dụ về chuyển đổi nó thành chuỗi đầu tiên? Tôi tự hỏi nếu tôi nên thiết lập một bảng tạm thời hoặc một cái gì đó ... – Jfabs

+1

Đó là trong câu trả lời: 'CAST (table1.colx AS VARCHAR (36))'. Điều này sẽ trả về biểu diễn chuỗi của GUID. Bạn có thể sử dụng nó ở bất cứ nơi nào bạn thường tham chiếu cột (trong một SELECT, WHERE, JOIN, vv). Nếu bạn gặp khó khăn trong việc tìm ra nơi để đặt điều này, hãy mở một câu hỏi mới và bao gồm mã của bạn. Ping tôi ở đây và tôi sẽ rất vui khi trả lời nó. –

Các vấn đề liên quan