PIXNET Logo登入

oracle園地

跳到主文

這裡是到處搜括來的ORACLE技術及文章,也有自己發表的文章,希望大家可以互相討論! PS-若有侵權,請告知哦.

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 9月 04 週四 200814:57
  • SQL 刪除重覆記錄

 Delete from emp e

  where e.rowid >

   (select min(f.rowid) from emp f

    4 where f.empno=e.empno);

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(1,072)

  • 個人分類:Oracle SQL
▲top
  • 9月 02 週二 200809:53
  • SQL 取字用法,例'abc,123,TYT'→abc

1.取,之前的文字,如果是.就把,換掉
SELECT SUBSTR('abc,123,TYT', 1 ,INSTR('abc,123,TYT', ',', 1, 1)-1)
FROM dual;

ANS : abc

2.取,中間的文字,如果是.就把,換掉
SELECT SUBSTR('abc,123,TYT', INSTR('abc,123,TYT',',', 1, 1)+1,
INSTR('abc,123,TYT',',',1,2)-INSTR('abc,123,TYT',',',1,1)-1)
FROM dual;


ANS : 123

3.取,最後的文字,如果是.就把,換掉
SELECT SUBSTR('abc,123,TYT', INSTR('abc,123,
TYT',',', 1, 2)+1)
FROM dual;

ANS : TYT


如 :

1.取,之前的文字,如果是.就把,換掉
 SELECT SUBSTR('808001772.1.2', 1 ,INSTR('808001772.1.2', '.', 1, 1)-1)
FROM dual;

ANS : 808001772

2.取,中間的文字,如果是.就把,換掉
SELECT SUBSTR('808001772.1.2', INSTR('808001772.1.2','.', 1, 1)+1,
INSTR('808001772.1.2','.',1,2)-INSTR('808001772.1.2','.',1,1)-1)
FROM dual;

ANS : 1

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(2,384)

  • 個人分類:Oracle SQL
▲top
  • 6月 24 週二 200809:46
  • SQL MERGE語句组合表

MERGE語句是Oracle9i新增的語法,用來合併UPDATE和INSERT語句。
通過MERGE語句,根據一張表或子查詢的連接條件對另外一張表進行查詢,
連接條件匹配上的進行UPDATE,無法匹配的執行INSERT。
這個語法僅需要一次全表掃描就完成了全部工作,執行效率要高於INSERT+UPDATE。
下面看個具體的例子:

--1.來源表
CREATE TABLE T AS SELECT ROWNUM ID, A.* FROM USER_OBJECTS A;

--2.目標表
CREATE TABLE T1 AS
SELECT ROWNUM ID, TABLE_NAME, CAST('TABLE' AS VARCHAR2(100)) OBJECT_TYPE
FROM USER_TABLES;

--3.根據來源表UPDATE和INSERT目標表
MERGE INTO T1 USING T
ON (T.OBJECT_NAME = T1.TABLE_NAME AND T.OBJECT_TYPE = T1.OBJECT_TYPE)
WHEN MATCHED THEN UPDATE SET T1.ID = T.ID
WHEN NOT MATCHED THEN INSERT VALUES (T.ID, T.OBJECT_NAME, T.OBJECT_TYPE);

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(2) 人氣(10,717)

  • 個人分類:Oracle SQL
▲top
  • 6月 24 週二 200809:10
  • Oracle SQL 特殊用法

部分列為空的排序問題
1.null值排在最前面,其他數值升序排列,使用關鍵字:desc nulls first

order by A.X desc nulls first



2.null值排在最前面,其他數值降序排列,使用關鍵字:asc nulls first
order by A.X desc nulls first


3.Connect by 使用方法
connect by prior start with 經常會被用到一個表中存在遞歸關系的時候。比如我們經常會將一個比較復雜的目錄樹存儲到一個表中。或者將一些部門存儲到一個表中,而這些部門互相有隸屬關系。這個時候你就會用到connect by prior start with。



例:

SELECT LEVEL || SYS_CONNECT_BY_PATH(a.empno, '->') RESULT

FROM scott.emp a

CONNECT BY a.empno = PRIOR a.mgr

START WITH a.empno = 7369;



SYS_CONNECT_BY_PATH即在相應字段前加'->'符號,LEVEL是級別









 

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(9,470)

  • 個人分類:Oracle SQL
▲top
  • 5月 17 週六 200813:51
  • 可根據金額判斷借貸

       decode(sign(rgd.acctd_amount),1,rgd.acctd_amount,null) dr
       ,decode(sign(rgd.acctd_amount),-1,rgd.acctd_amount*-1,null) cr

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(193)

  • 個人分類:Oracle SQL
▲top
«12

部落格文章搜尋

近期文章

    文章彙整

    文章分類

    toggle Oracle Tools (3)
    • Oracle 工具安裝 (2)
    • Oracle Trigger (5)
    • Oracle Form (18)
    toggle Oracle SQL (3)
    • ORACLE DBA 指令 (3)
    • Oracle PL/SQL (15)
    • Oracle SQL (15)
    toggle ORACLE ERP (8)
    • 採購模組 (2)
    • 其它常用表結構 (1)
    • 工具下載 (1)
    • 財務模組 (1)
    • 製造模組 (2)
    • 庫存模組 (2)
    • 業務模組 (2)
    • 專業知識 (2)
    toggle 教學影音檔 (1)
    • 教學影音檔 (12)
    • 未分類文章 (1)

    誰來我家

    參觀人氣

    • 本日人氣:
    • 累積人氣:

    姓名學