首页 > 解决方案 > 如何在sql where子句中实现'if not-then'之类的东西

问题描述

我遇到了一个关于 sql 的问题。

我有一张桌子Person

create table Person(id int primary key, name varchar(30), postal_code int, country varchar(20));

insert into Person values(1, 'Aagam Jain', 12345, 'India');
insert into Person values(2, 'Akshay Jain', 12346, 'India');
insert into Person values(3, 'Aman Jain', 12347, 'USA');
insert into Person values(4, 'Abhinav Jain', 12348, 'UK');
insert into Person values(5, 'Akki Jain', 12349, 'Germany');
insert into Person values(6, 'Amar Jain', 12348, 'UK');

SELECT * FROM Person;

在此处输入图像描述

这是带有表模式的虚拟数据将帮助您快速回答。

我想要除了 Country India 之外的所有表格记录,我只想使用 pincode 记录12345

这是示例输出格式。

在此处输入图像描述

对于所有其他国家/地区,我想要所有记录,但对于印度,我只想要邮政编码为“12345”的记录;

提前致谢。

标签: mysqlsql

解决方案


逻辑运算符AND/OR带括号的简单应用( )应该可以解决问题。尝试以下操作:

SELECT * FROM Person 
WHERE (country = 'India' and postal_code = '12345') 
OR country != 'India'

根据@jarlh 的评论,更简洁的逻辑是:

SELECT * FROM Person 
WHERE country != 'India' OR postal_code = '12345'

推荐阅读