国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle to_char 函數詳解

2024-08-29 13:28:20
字體:
來源:轉載
供稿:網友

        to_char,函數功能,就是將數值型或者日期型轉化為字符型。

  比如最簡單的應用:

  Select TO_CHAR(1.0123) FROM DUAL
  Select TO_CHAR(123) FROM DUAL

  接下來再看看下面:

  SELEC TO_CHAR(0.123) FROM DUAL

  上面的結果 '.123' 在大多數情況下都不是我們想要的結果,我們想要的應該是 '0.123'。

  我們來看一下to_char函數的具體用法:

  TO_CHAR ( n [, fmt [, 'nlsparam']] )該函數將NUMBER類型的n按數值格式fmt轉換成VARCHAR2類型的值。'nlsparams'指定由數值格式的元素返回的字符,包括:

 ?。迭c字符
 ?。M分隔符
 ?。镜劐X幣符號
 ?。畤H錢幣符號

  變元的形式為:

  'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'

  其中d為小數點字符,g為組分隔符。

  例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145

  通過上面的了解,再查看fmt的一些格式,我們可以用以下表達式得到'0.123'的值:

  Select TO_CHAR(0.123,'0.999') FROM DUAL
  Select TO_CHAR(100.12,'0.999') FROM DUAL
  Select TO_CHAR(1.12,'0.999') FROM DUAL

  ' 0.123'是出來了,可是前面又多了一個空ge。

  對于 100.12 的值卻是######,以及'1.12'的值變成了 '1.120'。

  我們重新確定一個新的需求:

  1、去空ge

  2、小數點最多4位,最少保留2位。

  1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';

  1.12345--->'1.1235'

  最終實現如下:

  Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL

  二、 To_char(1.9999,’FM90.0999’)這個函數規ge化時90.0999的含義是有9的地方如果有數字就顯示如果沒有數字就不顯示,有0的地方在沒有數字的時候也會有0來占位.但這樣做也有一個很大的缺點,就是如果是整數時它也仍然會顯示”.”,不要小瞧這個點,一般來講頁面上要顯示的話這個點就是多余的.也給我們造成了不小的麻煩.還要自己再寫函數來把這個小點搞定.

  三、對于日期型的Oracle倒時提供了一個好的處理方法,可以把日期做成數值型的.然后再To_char就能顯示出你所需要的類型了.

  四、 在使用select into時一定要注意,這種方法你一定要確認肯定會有數據被查出時才能使用.如果查詢結果為空時會導致報錯.還有一種情況是查出來的數據是多條也會報錯.所以應該盡量便宜游標來做.會減少錯誤產生的機率.

  五、還有注意一點rownum不支持排序,就是說你想用這個來控制行數的話就會發現他沒有按你指定的排序方式顯示.,這是一個很難辦的事.而且如果你用rownum=2這樣的語句來輸出第二行的話也是行不通的. 六、最惡心的一點是Oracle對null的判斷變態到極點.如果你說某個變量 aa=null它是判斷不出來的.盡管aa的確是空.即使在選擇條件里也是判斷不出來的.不知道為什么,只好用nvl()這個函數來判斷了.在條件之外可以用 aa is null 來判斷.

  六、補充一點.就是在寫存儲過程時要注意參數名不能與數據庫字段名相同.否則Oracle會把這個參數名看成是字段名的,即使你用表的別名區分也不行.所以起參數名的時候一定要注意這點了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汾西县| 三亚市| 新安县| 石台县| 无棣县| 饶平县| 荥阳市| 合水县| 德清县| 阿克| 和平县| 永修县| 兰坪| 乌什县| 定州市| 容城县| 连江县| 松滋市| 新绛县| 措勤县| 南开区| 嘉祥县| 东乌| 徐州市| 阿克| 蒙城县| 南通市| 富锦市| 桓台县| 格尔木市| SHOW| 文安县| 公安县| 宝坻区| 疏附县| 贡觉县| 成武县| 河西区| 清徐县| 忻城县| 盘锦市|