文字,多位數字,混合排序

2021-05-23 17:50:52 字數 467 閱讀 1599

有個需求,要匯入系統中的班級,進行排序,班級為文字型別,因為有的班級是1,2,3之類,有的是天河班,白雲班,如果只是簡單地 order by classname,輸出的將會是 1,11,12,13,2,3...白雲,天河

要解決多位數字的排序,可以使用 order by classname * 1 ,因為這個 × 1會將 classname 轉換為數字型別,但 白雲×1顯然是會報錯的。 所以目前的解決辦法是

order by (case when isnumeric(classname) = 1 then classname * 1 else 9999 end)

先判斷型別,如果可以轉化為數字,就轉化為數字,不能就變為乙個比較大的數 目前的缺陷:1.總會有一天出現乙個比這個比較大的數更大的數 (其實也可以設 -1 )

擴充套件:漢字部分還能按筆畫排序 order by classname collate chinese_prc_stroke_ci_as

004 美化多位數字

將給定的數字以逗號分隔的形式顯示出來 bin bash filename nicenum.sh 可接受兩個選項 dd decimal pointa,小數分隔符 和td thousands delimiter,千位分隔符 nicenumber decimal fi thousands int whil...

輸出乙個多位數的各位上的數字

以乙個例題為例 給乙個整數,要求 求出他是幾位數 分別輸出每一位數字 按逆序輸出各位數字,例如原數為321,應輸出為123.解題思路 1 判斷幾位數,每次num 10然後計數,直到除到原數為0為止,計數的數字就為位數 2 主要利用 和 得到各個位的數字,例如123 10就可以得到個位數字3,如果要獲...

noip1998 多位數連線 (排序,字串處理)

a1118.多位數連線 時間限制 1.0s 記憶體限制 256.0mb 總提交次數 823ac次數 214 平均分 60.51 將本題分享到 檢視未格式化的試題 提交試題討論 試題 noip1998 提高組 問題描述 設有n個正整數 n 20 將它們聯接成一排,組成乙個最大的多位整數。例如 n 3時...