AS400 DB2 SQL常用函式總結
阿新 • • 發佈:2019-01-03
說明,本文所述,全部是針對使用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'