数据来源: http ://www-01.sil.org/iso639-3/iso-639-3_20130520.tab
所以我有一个这样的表(从实际表缩写):
Part3 Part2B Part2T Part1 Scope Type Name Comment
aaa NULL NULL NULL I L Ghotuo NULL
aar aar aar aa I L Afar NULL
ach ach ach NULL I L Acoli NULL
ave ave ave ae I A Avestan NULL
bod tib bod bo I L Tibetan NULL
ces cze ces cs I L Czech NULL
列、、、Id
和是国际各种标准中使用的代码Part2B
,都是ISO 639的一部分。虽然这对于从 ISO 639-2(B)、ISO 639-2(T) 或 ISO 639-1 到 ISO 639-3 查找等效代码很有用,但当您不这样做时,它对于反向查找不是那么有用'不知道代码属于哪一列。我希望有一个像这样结构的视图(从上表创建,为清楚起见,值只是留空):Part2T
Part1
FALSE
Code Part3 Part2B Part2T Part1
aa TRUE
aaa TRUE
aar TRUE TRUE TRUE
ach TRUE TRUE TRUE
ae TRUE
ave TRUE TRUE TRUE
bo TRUE
bod TRUE TRUE
ces TRUE TRUE
cs TRUE
cze TRUE
tib TRUE
这种结构清楚地表明它Part2T
是 的子集Part3
,但Part2B
不是。因此,需要所有代码的单列和布尔* columns* 来指定代码在 ISO 639 标准的哪个部分有效。如果可以使用视图将数据转换为我想要的结构,那么目标也是不重复数据或创建太多表来维护。
如何从表中创建此视图,将多个列组合成 1 个唯一列?…或者甚至可以使用 PostgreSQL?