我已经开始在DB2中创建描述性表名,并且发现DB2的每个表都有一个简短的名称和一个长名称。
EmployeePlan的简称为Emplo00001
我希望能够从sql语句中显示这两个名称。 这是我现有的SQL - 我可以加入一个表来获取短名称吗?
select * --table_name, system_column_name, column_text, Type_Name, column_Size, *
from sysibm.SQLColumns
where table_schem IN ('LAWMOD9T', 'LIBDDS')
and upper(table_name) IN ('EMPLOYEEPLAN')
ORDER BY system_column_name
谢谢你,大流士X如此迅速地回答我的问题。这是我的最后一个问题:
SELECT b.system_table_name as ShortName,
a.table_name, a.system_column_name, a.column_text,
a.type_name, a.column_size
FROM sysibm.SQLColumns a
INNER JOIN qsys2.systables b
ON a.table_name = b.table_name
AND a.table_schem = b.table_schema
WHERE UPPER(a.table_schem) IN ('LAWMOD9T', 'LIBDDS')
AND UPPER(a.table_name) IN ('EMPLOYEEPLAN')
ORDER BY a.table_schem, a.table_Name, a.ordinal_position
答案 0 :(得分:3)
可能有多种方式,但如果您运行此查询:
select *
from qsys2.systables
where table_schema IN ('LAWMOD9T', 'LIBDDS')
您会看到SYSTEM_TABLE_NAME是其中一列。因此,您可以使用架构和" long"加入qys2.systables。表名。
答案 1 :(得分:0)
您也可以添加短名称过滤器
select
TABLE_NAME
from QSYS2.SYSTABLES
where table_schema = 'SchemaName' AND SYSTEM_TABLE_NAME = 'SystemName';