sql语句优化

来源:互联网 发布:淘宝售后说明 编辑:程序博客网 时间:2024/05/20 07:50

1.oracle使用merge更新或插入

使用merge比传统的先判断再选择插入或更新快很多

如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作
    — 避免了分开更新
    — 提高性能并易于使用
    — 在数据仓库应用中十分有用

使用语法

MERGE [hint] INTO [schema .] table [t_alias] USING [schema .]

{ table | view | subquery } [t_alias] ON ( condition )

WHEN MATCHED THEN merge_update_clause

WHEN NOT MATCHED THEN merge_insert_clause;

创建测试表:
CREATE TABLE MM (ID NUMBER, NAME VARCHAR2(20));
CREATE TABLE MN (ID NUMBER, NAME VARCHAR2(20));
插入数据
INSERT INTO MM VALUES (1, 'A');
INSERT INTO MN VALUES (1, 'B');
更新同一张表的数据
MERGE INTO mn a
   USING (select count(*) co from mn where mn.ID=4) b
   ON (b.co<>0)
   WHEN MATCHED THEN
      UPDATE
         SET a.NAME = 'E'
         where a.ID=4
   WHEN NOT MATCHED THEN
      INSERT
      VALUES (4, 'E');

2.ORACLE根据中文拼音首字母排序、取得中文拼音首字母函数

SELECT * FROM T_TABLE t  ORDER BY NLSSORT(t.name, 'NLS_SORT=SCHINESE_PINYIN_M');

原创粉丝点击