生手DB2数据查询
新手DB2数据查询
SELECT (SELECT MST_OPEN_BR FROM B027.EBFMST
WHERE DPW3_EBAC = MST_AC_NO) AS BR,
SUBSTR(CHAR(DPW3_ACDATE), 1, 4) || '/' ||
SUBSTR(CHAR(DPW3_ACDATE), 5, 2) || '/' ||
SUBSTR(CHAR(DPW3_ACDATE), 7, 2) AS TX_ACDATE,
SUBSTR(DPW3_RECORD,1,4) AS TRCODE,
SUBSTR(DPW3_RECORD,5,4) AS TTMNO,
SUBSTR(DPW3_RECORD,9,7) AS TJOURNAL,
SUBSTR(DPW3_RECORD,16,6) AS TTRTIME,
SUBSTR(DPW3_RECORD,22,10) AS TTRDATE,
SUBSTR(DPW3_RECORD,32,4) AS TTLID,
SUBSTR(DPW3_RECORD,36,4) AS TOVID1,
SUBSTR(DPW3_RECORD,40,4) AS TOVID2,
SUBSTR(DPW3_RECORD,44,12) AS EBAC,
SUBSTR(DPW3_RECORD,56,100) AS DETAIL,
B027.ACCOUNTING_DATE.ACDATE
FROM B027.EBFGE30, B027.ACCOUNTING_DATE
WHERE DPW3_RPT = 'D001' AND DPW3_RECORD <> ''
但是由于数据的原因到SELECT MST_OPEN_BR FROM B027.EBFMST WHERE DPW3_EBAC = MST_AC_NO) AS BR,某些情况下没有值
只能用DPW3_RECORD大字段中的一段来代替了 请问这个SQL该怎么改写?
------解决方案--------------------
(SELECT MST_OPEN_BR FROM B027.EBFMST
WHERE DPW3_EBAC = MST_AC_NO) AS BR,->\
COALESCE(
(SELECT MST_OPEN_BR FROM B027.EBFMST
WHERE DPW3_EBAC = MST_AC_NO),你的值) AS BR
SELECT (SELECT MST_OPEN_BR FROM B027.EBFMST
WHERE DPW3_EBAC = MST_AC_NO) AS BR,
SUBSTR(CHAR(DPW3_ACDATE), 1, 4) || '/' ||
SUBSTR(CHAR(DPW3_ACDATE), 5, 2) || '/' ||
SUBSTR(CHAR(DPW3_ACDATE), 7, 2) AS TX_ACDATE,
SUBSTR(DPW3_RECORD,1,4) AS TRCODE,
SUBSTR(DPW3_RECORD,5,4) AS TTMNO,
SUBSTR(DPW3_RECORD,9,7) AS TJOURNAL,
SUBSTR(DPW3_RECORD,16,6) AS TTRTIME,
SUBSTR(DPW3_RECORD,22,10) AS TTRDATE,
SUBSTR(DPW3_RECORD,32,4) AS TTLID,
SUBSTR(DPW3_RECORD,36,4) AS TOVID1,
SUBSTR(DPW3_RECORD,40,4) AS TOVID2,
SUBSTR(DPW3_RECORD,44,12) AS EBAC,
SUBSTR(DPW3_RECORD,56,100) AS DETAIL,
B027.ACCOUNTING_DATE.ACDATE
FROM B027.EBFGE30, B027.ACCOUNTING_DATE
WHERE DPW3_RPT = 'D001' AND DPW3_RECORD <> ''
但是由于数据的原因到SELECT MST_OPEN_BR FROM B027.EBFMST WHERE DPW3_EBAC = MST_AC_NO) AS BR,某些情况下没有值
只能用DPW3_RECORD大字段中的一段来代替了 请问这个SQL该怎么改写?
------解决方案--------------------
(SELECT MST_OPEN_BR FROM B027.EBFMST
WHERE DPW3_EBAC = MST_AC_NO) AS BR,->\
COALESCE(
(SELECT MST_OPEN_BR FROM B027.EBFMST
WHERE DPW3_EBAC = MST_AC_NO),你的值) AS BR