iT邦幫忙

0

[SQL] sum 運算子的運算元資料類型 varchar 無效

sql
  • 分享至 

  • xImage

不好意思想請教版上大大
小弟剛入門SQL
遇到如標題問題
https://ithelp.ithome.com.tw/upload/images/20200119/20124354HmVGx7D8OP.jpg
想請教該如何成功運算
小弟不才麻煩了qqㄒ

石頭 iT邦高手 1 級 ‧ 2020-01-19 15:18:38 檢舉
我建議檢視一下 你資料表的型態是否是符合商業需求
我看到比較大的問題在你的資料表欄位型態...
.
報酬率用VARCHAR 裡面是存 一二三嗎XDD
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
阿展展展
iT邦好手 1 級 ‧ 2020-01-19 15:12:55

轉 int 阿.....

1

varchar 當然無效
它是字元啊。又不是數值。字元怎麼可以sum。

不要被弱型態的習慣害死自已。
字元的"123" 跟數值的 123是不一樣的東西
理論上字元型態"123"是無法做數值運算的。

一些弱型態語言。只是會智能化幫你轉成數值類型處理。

但mssql是屬於嚴格式的sql。不容許這樣的用法。(雖然可以開啟就是了)
自然就給你報錯了。

lonionl iT邦新手 5 級 ‧ 2020-01-19 21:05:18 檢舉

非常大大們的回答,因為小弟一開始就有用到cast( as float)但卻說語法錯誤,結果今天重新再試一次後就可以了,實在是想不到問題,但還是非常感謝各位的回答

0
小魚
iT邦大師 1 級 ‧ 2020-01-19 20:16:29

"123" + "456" = "123456"
是這樣SUM嗎?

0
舜~
iT邦高手 1 級 ‧ 2020-01-19 20:29:24

日報酬率的欄位
->您需要這個東西CAST 和 CONVERT (Transact-SQL)幫您把varchar型態轉型成 整數int 或是 如果有小數的話轉型成 float/decimal 後,才可以進行sum運算~~

lonionl iT邦新手 5 級 ‧ 2020-01-19 21:52:00 檢舉

非常感謝大大的回答!

我要發表回答

立即登入回答