2017-03-31 237 views
1

我有一個表應該是nvarchar(8),但意外存儲爲bigint (8 bytes)。數據現在正在運行。 我需要將bigint數值轉換爲預期的nvarchar(8)字符串。例如 列值應該是'MOLASSES',但實際上是數值5570755107535144275SQL Server將nvarchar轉換爲Big Int並返回到nvarchar

任何人都可以幫忙嗎?

+3

你不能適合5570755107535144275到8個字符 – Takarii

+0

一個nvarchar場我Takarii同意,而且要列從優化搜索的數據類型轉換爲字符串任何關節原因。你期待Unicode數據嗎? –

+0

當潛在的幫助出現諸如「你爲什麼要這樣做?」之類的問題之前,我經常會感興趣。等等。它的好處在於提供的幫助將取決於要求的原因。 – user3049876

回答

1

要將bigint轉換回varchar,請先將其轉換回二進制值。

http://sqlfiddle.com/#!6/3e91f/2

CREATE TABLE BYTESTREAM(VALUE BIGINT NOT NULL); 

INSERT INTO BYTESTREAM VALUES (5570755107535144275); 

SELECT VALUE 
, CONVERT(VARBINARY(8), VALUE) 
, CONVERT(VARCHAR(8), CONVERT(VARBINARY(8), VALUE)) 
FROM BYTESTREAM 
+0

謝謝你。我現在看看解決方案,並認同它很明顯。 – user3049876