DB2SQL是否显示长表名和短表名?
我已经开始在DB2中创建描述性表名,发现DB2对每个表都有一个短名称和一个长名称 EmployeePlan的简称为Employ00001 我希望能够显示sql语句中的两个名称。 这是我现有的SQL—是否有一个表可以加入以获得短名称DB2SQL是否显示长表名和短表名?,sql,naming,db2-400,Sql,Naming,Db2 400,我已经开始在DB2中创建描述性表名,发现DB2对每个表都有一个短名称和一个长名称 EmployeePlan的简称为Employ00001 我希望能够显示sql语句中的两个名称。 这是我现有的SQL—是否有一个表可以加入以获得短名称 select * --table_name, system_column_name, column_text, Type_Name, column_Size, * from sysibm.SQLColumns where table_schem IN ('LAWMOD
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
可能有多种方法,但如果运行此查询:
select *
from qsys2.systables
where table_schema IN ('LAWMOD9T', 'LIBDDS')
您将看到SYSTEM_TABLE_NAME是其中一列。因此,您可以使用模式和长表名加入qys2.systables。您也可以添加短表名筛选器
select
TABLE_NAME
from QSYS2.SYSTABLES
where table_schema = 'SchemaName' AND SYSTEM_TABLE_NAME = 'SystemName';
杰出的那正是我想要的。这是我的最后一个问题。。。在a.table\u name=b.table\u name和a.table\u schem=b.table\u schema上选择b.system\u table\u name作为ShortName、a.table\u name、a.column\u text、a.type\u name、a.column\u size作为sysibm.SQLColumns a内部联接qsys2.systables b,其中upper a.table\u schem在'LAWMOD9T'中,“LIBDDS”和UPPERa.table_名称按a.table_方案、a.table_名称、a.ordinal_位置的“EMPLOYEEPLAN”顺序排列