Oracle DECODE 函數應用樣本

來源:互聯網
上載者:User
/*Decode函數*/
   --Decode函數的原型為: Decode(testValue, if1, then1, if2,then2.....else).
   --針對testValue進行測試,若testValue等於if1則返回then1,若testValue等於if2則返回then2,....若都沒有返回,剛返回else.
   --常見用法是在Oracle中實現行轉列(Convert Rows to Columns).

 

SQL指令碼

drop table student;
/
--1.建立表
CREATE TABLE  STUDENT
(
   SID VARCHAR(10),
   SName varchar(30),
   sex varchar2(2) DEFAULT '1',
   age integer,
   address varchar(100),
   primary key (SID)
);
/
--2.新增資料
Declare
i integer:=1;
v_sql varchar(1000);
begin
i:=1;
while i<10 loop
v_sql:=' insert into student(sid,SName,sex,age,address) values(:1,:2,:3,:4,:5)';
if i<5 then
  execute immediate  v_sql  using i,'同學'||i,to_char(MOD(i,2)),18,'hunan';
else
  execute immediate  v_sql  using i,'同學'||i,to_char(MOD(i,2)),19,'sichuan';
end if;
commit;
i:=i+1;
end loop;
end;
/
commit;
/

--3.調用預存程序
--==========================================================================================
begin
 InsertTestData(10);
end;
/

/*Decode函數*/
   --Decode函數的原型為: Decode(testValue, if1, then1, if2,then2.....else).
   --針對testValue進行測試,若testValue等於if1則返回then1,若testValue等於if2則返回then2,....若都沒有返回,剛返回else.
   --常見用法是在Oracle中實現行轉列(Convert Rows to Columns).
   
--4.用Decode 查詢同學們的性別資訊
SELECT SName, 
       DECODE (sex,
               '1', '男',
               '0', '女'
              ) AS 性別
  FROM STUDENT;
  /

--5.按性別分組,統計家庭地址在hunan,sichuan 的同學個數
SELECT age, SUM (DECODE (address, 'hunan', 1, 0)) AS "湖南省",
               SUM (DECODE (address, 'sichuan', 1, 0)) AS "四川省"
   FROM student
   GROUP BY age;
/

 

 

運行結果:

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.