获取

2016-04-29 35 views
3

我想查询以下的所有表/列,并在一个查询其数据类型火鸟:所有的表,用自己的列和数据类型获取

我从http://www.firebirdfaq.org/faq174/

select f.rdb$relation_name, f.rdb$field_name, f.rdb$field_source 
from rdb$relation_fields f 
join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name 
and r.rdb$view_blr is null 
and (r.rdb$system_flag is null or r.rdb$system_flag = 0) 
order by 1, f.rdb$field_position 
得到这个至今

我刚才添加了上述代码“f.rdb $ field_source”给我也上表中的信息,应该让我找到列的数据类型之后在该表RDB $ FIELDS

SELECT * from RDB$FIELDS 

我想在上面的查询是这样的补充:

select f.rdb$relation_name, f.rdb$field_name, f.rdb$field_source 
from rdb$relation_fields f 
join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name 
and r.rdb$view_blr is null 
and (r.rdb$system_flag is null or r.rdb$system_flag = 0) 
order by 1, f.rdb$field_position 

加那么下面需要做的:

select a.RDB$FIELD_TYPE from RDB$FIELDS 
where RDB$FIELD_NAME is equal to the .rdb$field_source 
from rdb$relation_fields 

所以我有表名/ COLUMNNAME/TypeofData一个表。

我在SQL方面没有多少经验。我希望我的问题是不够清楚

回答

3

刚刚加入RDB $ FIELDS表:

SELECT 
    R.RDB$RELATION_NAME, 
    R.RDB$FIELD_NAME, 
    R.RDB$FIELD_SOURCE, 
    F.RDB$FIELD_LENGTH, 
    F.RDB$FIELD_TYPE, 
    F.RDB$FIELD_SCALE, 
    F.RDB$FIELD_SUB_TYPE 
FROM 
    RDB$RELATION_FIELDS R 
    JOIN RDB$FIELDS F 
    ON F.RDB$FIELD_NAME = R.RDB$FIELD_SOURCE 
    JOIN RDB$RELATIONS RL 
    ON RL.RDB$RELATION_NAME = R.RDB$RELATION_NAME 
WHERE 
    COALESCE(R.RDB$SYSTEM_FLAG, 0) = 0 
    AND 
    COALESCE(RL.RDB$SYSTEM_FLAG, 0) = 0 
    AND 
    RL.RDB$VIEW_BLR IS NULL 
ORDER BY 
    R.RDB$RELATION_NAME, 
    R.RDB$FIELD_POSITION