1
我有一個存儲不同的信息到一個值列varchar(max)
錯誤轉化爲varchar(最大值)時,整數或浮點數
我需要能夠提取一些信息,從該表中,將其轉換爲一個表一個整數和平均數。當我嘗試轉換時,我遇到了一個問題。
這不起作用:
select cast(value as float) as value
from table
誰能告訴我如何正確地轉換呢?
我有一個存儲不同的信息到一個值列varchar(max)
錯誤轉化爲varchar(最大值)時,整數或浮點數
我需要能夠提取一些信息,從該表中,將其轉換爲一個表一個整數和平均數。當我嘗試轉換時,我遇到了一個問題。
這不起作用:
select cast(value as float) as value
from table
誰能告訴我如何正確地轉換呢?
推測,問題在於某些值不是數字格式。試試這個:
select (case when isnumeric(value) = 1 then cast(value as float) end)
from table
該功能可將所有的數字飄起,並把空值剩餘的字段。
如果你想看到導致問題的值,使用:
select value
from table
where isnumeric(value) = 0 and value is not null
謝謝,那就是訣竅!非常感謝這些信息。 – wondergoat77
的話題良好的閱讀:http://www.sqlservercentral.com/articles/IsNumeric/71512/ – MarkD
嚴重:閱讀[使用VARCHAR(n)的重點是什麼?](http://www.simple-talk.com/sql/database-administration/whats-the-point-of-using-varchar%28n%29-anymore /) - 你不應該使用'varchar(max)'太多 - 只有當**真正**時,絕對肯定需要(當你需要**超過8000個字符時!) –
感謝您的文章,在這種情況下,我無法選擇數據的格式(工作),所以我不得不尋找解決辦法。再次感謝這一次的協助。 – wondergoat77