Hive select一个表的字段名from一个表的字段值
时间: 2023-12-03 20:42:53 浏览: 37
你可以使用Hive中的动态分区来实现这个功能。假设你有一个表名为`my_table`,其中有一个字段名为`partition_col`,你想要根据该字段的值来选择另外一个表`other_table`的字段名,你可以按照以下步骤操作:
1. 创建`other_table`并插入数据。例如:
```
CREATE TABLE other_table (
id INT,
name STRING
);
INSERT INTO other_table VALUES (1, 'Alice');
INSERT INTO other_table VALUES (2, 'Bob');
INSERT INTO other_table VALUES (3, 'Charlie');
```
2. 修改`my_table`的表结构,添加一个动态分区字段。例如:
```
ALTER TABLE my_table ADD PARTITION (dynamic_partition_col STRING);
```
3. 将`my_table`的数据插入到动态分区中。例如:
```
INSERT INTO TABLE my_table PARTITION (dynamic_partition_col)
SELECT id, name, partition_col AS dynamic_partition_col
FROM other_table;
```
4. 使用动态分区来选择`other_table`的字段名。例如:
```
SELECT
CASE dynamic_partition_col
WHEN 'value1' THEN col1
WHEN 'value2' THEN col2
...
ELSE NULL
END AS selected_col
FROM my_table
WHERE dynamic_partition_col IN ('value1', 'value2', ...);
```
这个查询会根据`dynamic_partition_col`的值选择不同的字段名,并返回一个名为`selected_col`的结果集。你可以根据需要修改`SELECT`语句中的逻辑来实现你的需求。