0
我總是遇到嘗試這樣的麻煩。我發現這是一種解決方案,但我很好奇它們是否是一種更好的方法。將轉換(Bigint)允許對字符串進行計算
declare @CountByZip as int
select @CountByZip = convert(decimal(18,4),count(HouseNumbers))
from zipcodeDB
Where zip is not null
而使用這個作爲語句執行沒有問題!
Convert(decimal(18,4),Count(case when zip IN ('123', '456', '789') then zip else null end))/@CountByZip
不過,我很好奇,如果有轉換在我的case語句來詮釋,並允許在我的例子頂部取出變量和SELECT語句的創建方式。
Convert(Bigint,Convert(decimal(18,4),Count(case when zip IN ('123', '456', '789') then zip else null end))/Count(Zip)
然而,這將返回 的可怕SQL錯誤「錯誤轉換數據類型爲varchar到數字」 這是什麼讓我切換到我的聲明語句在頂部。
是否可以執行我的第二個例子?
所有這些'converts'沒有意義。我不認爲你需要任何'convert'。嘗試簡單的表達式,不用任何「轉換」,並告訴我們你有什麼問題。 – 2015-02-08 23:04:37
我在這裏使用的轉換是這樣的,它將顯示一個小數,'轉換(十進制(18,4),計數(當壓縮IN('123','456','789')然後zip另外空結束) )/ @ CountByZip'有沒有更好的方法來顯示小數? – user2676140 2015-02-09 13:00:33
我不明白你想要什麼,你的問題是什麼。換句話說,試着解釋你的目標是什麼。 – 2015-02-10 06:24:22