[問題] SQL MAX()問題

看板Python作者 (人)時間4年前 (2019/10/05 16:01), 編輯推噓3(3011)
留言14則, 4人參與, 4年前最新討論串1/1
想請問一個奇怪的錯誤 以下是兩張圖片 https://drive.google.com/open?id=1ldaCI_a8TmhnWZWyys0WinHI38bIEaKy https://drive.google.com/open?id=1C6jiAlCr8aej_Knjn1bsBu6DbBd4nVxV 我的資料庫是沒有PK的,因為特殊原因基本上都是斷斷續續的資料。 所以我想以圖中的indexNo作為某些操作的根據,但是以下的SQL語法卻導致錯誤: SELECT MAX(indexNo) FROM markTable 以第一個案例 當我的indexNo最大值還沒超過9,999時,它只會傳出993 以第二個案例 當我的indexNo最大值還沒超過99,999時,它只會傳出9998 但是我以第二個來抓: SELECT MAX(examNo) FROM markTable 一切正常 在設定上兩者一樣,唯一差別是examNo永遠是8個數字,沒滿八個數字前面全補0 ,indexNo就是單純數字轉字串 https://drive.google.com/open?id=127bKtjU8F5mKVyQ4J2sRMXBI_lLnj00B 請問我有忽略甚麼嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.114.118 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1570262501.A.C69.html

10/05 16:08, 4年前 , 1F
有database專板.另外圖片放imgur之類的,放你個人空
10/05 16:08, 1F

10/05 16:09, 4年前 , 2F
間如果問完就刪,對別人就失去參考價值.
10/05 16:09, 2F

10/05 16:15, 4年前 , 3F
好的,謝謝,不過那些圖都是我工作備份,不會刪的
10/05 16:15, 3F

10/05 16:38, 4年前 , 4F
你這問題不就文字排序的問題/特性啊
10/05 16:38, 4F

10/05 16:44, 4年前 , 5F
可以思考看看如果你要對文字排序時會怎麼做,
10/05 16:44, 5F

10/05 17:39, 4年前 , 6F
select MAX(CONVERT(INT, IndexNo)) from markTable
10/05 17:39, 6F

10/05 17:41, 4年前 , 7F
應該是字串問題,左邊對齊,examNO有補0所以沒問題
10/05 17:41, 7F

10/05 17:41, 4年前 , 8F
然後用關鍵字(如:字串 排序)看看一般邏輯上是怎做的
10/05 17:41, 8F

10/05 17:45, 4年前 , 9F

10/05 17:58, 4年前 , 10F
或是自己補0跟examNo一樣情境XD
10/05 17:58, 10F

10/05 17:59, 4年前 , 11F
Select Max(Right('00000000' + Cast(IndexNo as varcha
10/05 17:59, 11F

10/05 17:59, 4年前 , 12F
r),8)) from markTable
10/05 17:59, 12F

10/14 01:46, 4年前 , 13F
你是對vchar進行運算,若想得到你預想的結果須先轉
10/14 01:46, 13F

10/14 01:46, 4年前 , 14F
為int。
10/14 01:46, 14F
文章代碼(AID): #1Tc4tbnf (Python)