【发布时间】:2022-12-18 19:24:30
【问题描述】:
我想按照以下条件获取前 10 行以及 tabname = 'TABLE1' 和 'TABLE2' 的位置(如果这些表甚至不在前 10 行中)
根据以下条件的前 10 行工作正常:
db2 "select substr(a.tabname,1,30) as TABNAME,
> a.rows_read as RowsRead,
> (a.rows_read / (b.commit_sql_stmts + b.rollback_sql_stmts + 1)) as TBRRTX,
> (b.commit_sql_stmts + b.rollback_sql_stmts) as TXCNT
> from sysibmadm.snaptab a, sysibmadm.snapdb b
> where a.dbpartitionnum = b.dbpartitionnum
> and b.db_name = 'LIVE'
> order by a.rows_read desc fetch first 10 rows only"
TABNAME ROWSREAD TBRRTX TXCNT
------------------------------ -------------------- -------------------- --------------------
XOUTMSGLOG 43845129056 41 1049571334
SCHSTATUS 35336410261 33 1049571334
ADDRESS 26817245226 25 1049571334
CATGRPDESC 25628156703 24 1049571334
ORDERITEMS 23945555619 22 1049571334
ORDERS 10656700035 10 1049571334
XPAYINSTDATA 10555959906 10 1049571334
OFFER 10426958061 9 1049571334
SCHBRDCST 10286981444 9 1049571334
ATTRVALDESC 8327058697 7 1049571334
10 record(s) selected.
现在,要求是有“TABLE1”和“TABLE2”(如果这些表甚至不在前 10 行)那么如何在上面的语句中添加这个条件?
所以它看起来像下面这样:
TABNAME ROWSREAD TBRRTX TXCNT
------------------------------ -------------------- -------------------- --------------------
XOUTMSGLOG 43845129056 41 1049571334
SCHSTATUS 35336410261 33 1049571334
ADDRESS 26817245226 25 1049571334
CATGRPDESC 25628156703 24 1049571334
ORDERITEMS 23945555619 22 1049571334
ORDERS 10656700035 10 1049571334
XPAYINSTDATA 10555959906 10 1049571334
OFFER 10426958061 9 1049571334
SCHBRDCST 10286981444 9 1049571334
ATTRVALDESC 8327058697 7 1049571334
TABLE1 81444 1 10495713341
TABLE2 97 1 1049571334
12 record(s) selected.
【问题讨论】:
-
为这两个额外的表添加第二个查询并使用 UNION ALL 将两个查询放在一起