1. 程式人生 > >AS400 DB2 SQL常用函式總結

AS400 DB2 SQL常用函式總結

說明,本文所述,全部是針對使用SQL語句操作DB2,而不是在AS400的綠屏下使用AS400的命令操作Library、object、menber

一、AS400 DB2 SQL語法基礎特別說明

1、AS400 DB2 SQL庫、表、欄位名都不區分大小寫

2、AS400 DB2如果不在綠屏裡面使用DDS建立表,而是直接使用SQL建立表,注意欄位型別不支援一下型別

  • 不支援VARCHAR2, 但是支援VARCHAR

3、表沒有取別名的情況下,則欄位一定不能使用別名.欄位

開發時,多表join查詢,有時因為不同的表有相同的欄位,這是需要對錶名取別名,然後表別名.欄位,以區分具體是哪個表的欄位

SELECT
ITNBR FROM AMFLIBF.ITMRVA;
--√:表不使用別名 SELECT ITNBR FROM AMFLIBF.ITMRVA ITMRVA; --√:表使用別名,欄位不加表別名 SELECT ITMRVA.ITNBR FROM AMFLIBF.ITMRVA ITMRVA; --√:表使用別名,欄位也加表別名 SELECT ITMRVA.ITNBR FROM AMFLIBF.ITMRVA; --×:表不使用別名,欄位加表別名,(Oracle支援此寫法,請注意對比)

二、常用SQL函式

1、AS400 DB2複製表SQL語句

AS400 DB2依據一個表,建立一個新的表,語法完全不同於其他資料庫,如果需要複製表資料,必須分2個步驟,先定義複製表,然後再拷貝資料

  • 定義複製表 ,DEFINITION ONLY
CREATE TABLE 複製庫.複製表名 AS (SELECT * FROM 參考庫.參考表) DEFINITION ONLY;
  • 複製表資料,複製資料和其它資料庫操作類似
INSERT INTO 複製庫.複製表名 SELECT * FROM 參考庫.參考表;

2、coalesce函式使用,類似於其他資料庫的NVL函式

coalesce(欄位,預設值):結果就是如果欄位值不為NULL,則使用自己的值,否則使用預設值

SELECT COALESCE(MAX(ADFCNB), 100) FROM AMFLIBF.MBADREP WHERE ADCVNB = '    666'