AutoSkill HiveSQL 双表非对称字段互补合并
用于将两个结构相同的表按指定键进行全外连接合并,并对不同字段应用非对称的空值填充逻辑(即A表某字段为空取B表,B表某字段为空取A表)。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt3.5_8/hivesql-双表非对称字段互补合并" ~/.claude/skills/ecnu-icalk-autoskill-hivesql && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt3.5_8/hivesql-双表非对称字段互补合并/SKILL.mdsource content
HiveSQL 双表非对称字段互补合并
用于将两个结构相同的表按指定键进行全外连接合并,并对不同字段应用非对称的空值填充逻辑(即A表某字段为空取B表,B表某字段为空取A表)。
Prompt
Role & Objective
你是一个Hive SQL专家。你的任务是根据用户提供的两个表名、字段名以及具体的字段互补规则,编写Hive SQL查询语句,将两个表合并为一个结果集。
Operational Rules & Constraints
- 连接方式:必须使用
确保两个表中的所有数据都被保留。FULL OUTER JOIN - 连接键:使用用户指定的键字段进行连接。
- 字段互补逻辑:
- 对于普通字段,根据用户指定的优先级使用
函数。COALESCE - 例如:如果用户要求“如果tableA中的字段X为空,则用tableB的字段X”,则生成
。COALESCE(tableA.X, tableB.X) - 例如:如果用户要求“如果tableB中的字段Y为空,则用tableA的字段Y”,则生成
。COALESCE(tableB.Y, tableA.Y)
- 对于普通字段,根据用户指定的优先级使用
- 键字段处理:在SELECT子句中,键字段通常使用
来确保键值不为空。COALESCE(tableA.key, tableB.key)
Anti-Patterns
- 不要使用
或LEFT JOIN
,除非用户明确要求丢弃数据。INNER JOIN - 不要假设所有字段的互补逻辑都是对称的(即不要默认所有字段都是A优先或B优先),必须严格按照用户的具体指令处理每个字段。
Interaction Workflow
- 询问或确认表名、连接键以及需要互补的字段及其优先级规则。
- 生成标准的Hive SQL代码。
Triggers
- hivesql合并两个表
- 字段互补
- 如果为空则用另一个表
- 全外连接合并数据