posts - 3,comments - 1,trackbacks - 0
          今天修改一個前人的程序,一段sql文,里面的內(nèi)容一個很奇怪的地方,
          SELECT
            .
            ..
          FORM
             TABLE1 A,
             TABLE2 B
          WHERE
             A.FROMID 
          = B.TOID
             
          AND ..
             
          AND .


          這里面a表中的FromId 是char(8),b表中的toId是char(9) 一開始感覺這能出來數(shù)據(jù)嗎 可真他娘的出來了,暈!!!,公司不讓上網(wǎng),看書找不到介紹,自己慢慢猜測,一定是oracle自動給位數(shù)小的補足了空格。
          回到家里上網(wǎng)查了一下,找到答案了,大概摘錄一下,給自己以后提個醒,如果有什么不對的地方希望那個大家批評指教!!!

          Oracle使用以下兩種比較規(guī)則:
          1、空格補齊比較語法
          對于類型CHAR、NCHAR、text literals、USER函數(shù)值, 在進行比較時, 先在較短的那個
          字符串后補上空格以使長度相等, 然后再進行比較. 注意b.toId = ‘12345678’也會是true的
          2、非補齊比較語法
          對于類型VARCHAR2、NVARCHAR2, 則不用補齊, 直接進行比較.

          posted on 2010-07-20 06:15 高天賜 閱讀(523) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 昆明市| 稷山县| 南岸区| 金沙县| 谢通门县| 唐河县| 临海市| 论坛| 阿荣旗| 元江| 怀来县| 成安县| 延边| 湾仔区| 嘉峪关市| 台南县| 秦安县| 宜章县| 德兴市| 武清区| 岑巩县| 漳浦县| 富民县| 浙江省| 洛浦县| 德化县| 盈江县| 西丰县| 自治县| 高邑县| 巴南区| 共和县| 承德县| 义乌市| 桑植县| 涪陵区| 云梦县| 蕲春县| 汝州市| 确山县| 宜阳县|