如何使用SQL IF查询语句根据现有字段生成自定义新列
SQL实现逻辑说明
你可以通过CASE条件表达式生成符合要求的自定义列,需要注意Default是大多数SQL方言的保留关键字,引用时需要做转义处理:
- MySQL/MariaDB转义保留字用反引号
` - SQL Server转义保留字用方括号
[] - Oracle/PostgreSQL转义保留字用双引号
"
单表查询示例
SELECT *, CASE WHEN `New_Def` = 0 AND `Default` = 1 THEN 'NEW' WHEN `New_Def` = 1 AND `Default` = 1 THEN 'OLD' -- 可根据业务需求调整其他场景的默认返回值 ELSE NULL END AS new_old_type FROM 你的实际表名;
多表关联查询示例
如果需要关联多张数据表查询,在关联逻辑后加入CASE判断即可:
SELECT t1.*, t2.*, CASE WHEN t1.`New_Def` = 0 AND t1.`Default` = 1 THEN 'NEW' WHEN t1.`New_Def` = 1 AND t1.`Default` = 1 THEN 'OLD' ELSE NULL END AS new_old_type FROM 表1 t1 INNER JOIN 表2 t2 ON t1.关联字段 = t2.关联字段;
内容的提问来源于stack exchange,提问作者Przemek Dabek
相关产品推荐
相关产品推荐

