看板 Python 關於我們 聯絡資訊
想請問一個奇怪的錯誤 以下是兩張圖片 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
justoncetime: 有database專板.另外圖片放imgur之類的,放你個人空 10/05 16:08
justoncetime: 間如果問完就刪,對別人就失去參考價值. 10/05 16:09
yeahhuman: 好的,謝謝,不過那些圖都是我工作備份,不會刪的 10/05 16:15
justoncetime: 你這問題不就文字排序的問題/特性啊 10/05 16:38
justoncetime: 可以思考看看如果你要對文字排序時會怎麼做, 10/05 16:44
sqrt1089: select MAX(CONVERT(INT, IndexNo)) from markTable 10/05 17:39
sqrt1089: 應該是字串問題,左邊對齊,examNO有補0所以沒問題 10/05 17:41
justoncetime: 然後用關鍵字(如:字串 排序)看看一般邏輯上是怎做的 10/05 17:41
sqrt1089: https://i.imgur.com/U54ZheR.png 10/05 17:45
sqrt1089: 或是自己補0跟examNo一樣情境XD 10/05 17:58
sqrt1089: Select Max(Right('00000000' + Cast(IndexNo as varcha 10/05 17:59
sqrt1089: r),8)) from markTable 10/05 17:59
bboybighead2: 你是對vchar進行運算,若想得到你預想的結果須先轉 10/14 01:46
bboybighead2: 為int。 10/14 01:46