oracle数据库中SQL的lpad函数实现补零操作

2012年02月24日 其他资源 10条评论 阅读19354次

今天工作上遇到这样一个问题。是oracle数据库中SQL实现补零操作的问题。、

以下是当时问题的环境还原。

oracle11g下有一数据表、表名A

A表中有CD1 ,CD2两个字段,CD2字段最大字符长度是5.

现客户要求检索出A表的所有数据,并要求使用CD2字段升序排列。

本来很简单的一个sql就搞定,但偏偏CD2是个很特殊的字段,该字段被定义成varchar2类型,但数据却大部分存储的是正整数数字,在下述情况中,排序就有问题了

CD2字段值为1,2,11,22.  如果简单使用order by CD2。得到的结果将会是1,11,2,22

但客户希望的结果是1,2,11,22  。。

要达到上述结果,很容易让人想到的是利用to_number()函数把CD2字段的值转换成为数字类型。

很遗憾的是,前面也有所提到,CD2字段也有可能会有子母的存在,如果对字母也使用to_number()函数,那么sql语句将会发生内部错误而无法执行。

到这里 就想到先把CD2字段进行补位操作,因为CD2最大字符长度是5位,所以,一个将CD2字段补零使其满5位再进行排序的思路就出来了。

在网络上搜索补位操作,看到了lpad函数。lpad( 要补位的字符, 要补满的字符长度, 使用什么字符来补位)

基于以上语法,得到以下sql语句

select *

from A

order by lpad(CD2,5,'0')

执行,果然,出效果了。

看来还是lpad函数帮了大忙。

 

另外,在简单说一下lpad函数。

lpad不仅能补位,还能截位。

例如:

 

  SQL> select lpad('abcde',2) from dual;

 

  LPAD('ABCDE',2) 将得到ab的结果。说明lpad函数截取了'abcde'的从 数起前两位

 

  与lpad函数对应的是rpad函数:

 

  rpad函数从右边对字符串使用指定的字符进行填充,语法格式与lpad格式相同:

 

  rpad(string,padded_length,[pad_string])

以上。在实际项目需要时,可以更加灵活使用。

分享本文至:

WRITTEN BY

avatar
本文标签:oraclesqllpad
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

10 条评论

  1. avatar officelucust

    <a href="http://www.wiminfest.com/nike-zoom-kobe-vi-mettuttiic-argento-qs-scarpea">nike zoom kobe vi mettuttiic argento qs</a> <a href="http://www.ankarasevgi.com/oklahoma-city-thunder-new-era-nba-reflect-trucker-9fifty-snapback-cap-hati">oklahoma city thunder new era nba reflect trucker 9fifty snapback cap</a> <a href="http://www.dientedeperro.com/jordan-11-negro-custom-trainersb">jordan 11 negro custom</a> <a href="http://www.goseegary.com/flyknit-lunar-1-hvit-label-template-kurpesd">flyknit lunar 1 hvit label template</a> <a href="http://www.djnickbarton.com/nike-free-run-2-schwarz-herren-schuhel">nike free run 2 schwarz herren</a> <a href="http://www.chotinaukri.com/nike-magista-obra-acc-tpu-fg-soccer-boots-bl%C3%A5-hvid-sort-skof">nike magista obra acc tpu fg soccer boots bl氓 hvid sort</a>
    officelucust http://www.officelucust.com/

  2. avatar sfhires

    <a href="http://www.gamtola.com/pandora-triple-black-leather-bracelet-pandorar">pandora triple black leather bracelet</a> <a href="http://www.tarbiatesabz.com/billig-adidas-adizero-f50-trx-herre-bl%C3%A5-runningc">billig adidas adizero f50 trx herre bl氓</a>
    sfhires http://www.sfhires.com/

  3. avatar texarillo

    <a href="http://www.snifferwalk.com/nike-air-max-90-mujeres-p%C3%BArpura-blanco-zapatosk">nike air max 90 mujeres p煤rpura blanco</a> <a href="http://www.fishmackerel.com/kvinders-air-yeezy-ii-2-sp-max-90-r%C3%B8d-lyser%C3%B8d-skoi">kvinders air yeezy ii 2 sp max 90 r酶d lyser酶d</a> <a href="http://www.lauraenergy.com/mennns-nike-flyknit-lunar-3-svart-gull-obuvl">mennns nike flyknit lunar 3 svart gull</a> <a href="http://www.magellantt.com/womens-nike-roshe-run-triangle-white-red-shoesh">womens nike roshe run triangle white red</a> <a href="http://www.sportablecrew.com/nike-kobe-11-flyknit-rosso-argento-scarpei">nike kobe 11 flyknit rosso argento</a> <a href="http://www.digisolnc.com/nike-shox-current-himmelblau-grau-schuhej">nike shox current himmelblau grau</a>
    [url=http://www.texarillo.com/]texarillo[/url]

  4. avatar lapaktoko

    <a href="http://www.yeliseeva.com/adidas-forum-mid-violet-argent-chaussuresh">adidas forum mid violet argent</a> <a href="http://www.miembrojr.com/prada-bt1208-handbags-in-yellowish-brown-pradah">prada bt1208 handbags in yellowish brown</a> <a href="http://www.faridekhalaf.com/rainbow-denver-nuggets-jersey-nfli">rainbow denver nuggets jersey</a> <a href="http://www.rawbiofast.com/kvinders-nike-air-max-1-r%C3%B8d-gr%C3%B8n-skoq">kvinders nike air max 1 r酶d gr酶n</a> <a href="http://www.mabarrel.com/ralph-lauren-lace-swimsuit-issue-poloh">ralph lauren lace swimsuit issue</a> <a href="http://www.almarsecurity.com/nike-zoom-structure-18-purple-blue-shoesi">nike zoom structure 18 purple blue</a>
    lapaktoko http://www.lapaktoko.com/

  5. avatar 天津卷帘门厂

    操作很给力哈

  6. avatar 上海做网站

    谢谢分享,学习了

  7. avatar 粉丝批发

    走过路过支持一下嘿嘿

  8. avatar 刘稻SEO

    技术贴,支持!欢迎博主回访!

  9. avatar 影楼网络营销

    不错,过来学习一下了

  10. avatar 柚格利

    技术贴,学习一下

欢迎留言




用户登录

sitemap