PinnedPinnedPrivate
misfra.me

Misframe - CTEs作为查询表

CTE 可以直接充当一次性查找表,用来把数据库里的代码值转换成更适合展示的文本。面对国家代码、状态码、类型码这类字段,常见做法是在查询里写 CASE 表达式,但分支一多就会让主查询变得臃肿;同样的映射如果在多个地方使用,还得反复复制,维护时容易漏改。更清爽的写法是在查询开头用 CTE 构造一张小表,把 code 和 label 一行行列出来,再在主查询中 JOIN 或多次引用它。这样映射规则集中、可读性更好,也更接近真实维表的思路。对于 SQLite 和 PostgreSQL 这类支持 CTE 的数据库,这是一种轻量、无需建表、适合报表和临时分析的技巧。它不替代正式的数据建模,但能让一次性查询少些噪音。