oracle中處理varchar2排序問題

2021-10-04 07:11:14 字數 465 閱讀 1240

oracle中如果直接對varchar2型別進行排序,如果直接order by 字段,可能會出現11<2的情況。

例如:直接order by排序產生結果:0>1>11>2>3。這是因為varchar2型別實際排序的時候,首先只比較第一位數字大小,然後比較第二位,以此類推。

解決方案:

使用cast函式。 oracle的cast可以將列欄位型別轉化成對應型別的函式。但是sn必須為全數字字串,如果sn中含有除數字外的其它字元sql會報錯。

使用to_number。oracle的to_number函式是將字段型別轉化為數字型別,和cast一樣,如果含有其它的字元也會報錯

MySql中varchar和varchar的區別

看了新公司的資料庫設計,有些問題思考了一下,寫這篇文章也就記錄這個問題的思考過程。首先從占用空間進行比較,varchar 10 宣告10個位元組,資料儲存時額外乙個位元組的長度字首 varchar 1000 宣告1000個位元組,如果資料長度大於255,長度字首是兩個位元組。而實際varchar資料...

MySQL資料庫中CHAR與VARCHAR之爭

在資料庫中,字元型的資料是最多的,可以佔到整個資料庫的80 以上。為此正確處理字元型的資料,對於提高資料庫的效能有很大的作用。在字元型資料中,用的最多的就是char與varchar兩種型別。前面的是固定長度,而後面的是可變長度。現在我們需要考慮的是,在什麼情況下使用char字元型資料,什麼情況下採用...

MySQL資料庫中CHAR與VARCHAR之爭

在資料庫中,字元型的資料是最多的,可以佔到整個資料庫的80 以上。為此正確處理字元型的資料,對於提高資料庫的效能有很大的作用。在字元型資料中,用的最多的就是char與varchar兩種型別。前面的是固定長度,而後面的是可變長度。現在我們需要考慮的是,在什麼情況下使用char字元型資料,什麼情況下採用...