如何在SQL where子句中实现“ if not-then”之类的功能

时间:2018-09-24 12:57:48

标签: mysql sql

我遇到了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;

enter image description here

这里的虚拟数据具有表模式,将帮助您快速回答。

我想要该表的所有记录,但“印度国家”除外,我只想要使用pincode 12345进行记录。

这是示例输出格式。

enter image description here

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

谢谢。

2 个答案:

答案 0 :(得分:2)

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

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

根据@jarlh's comment,更整洁的逻辑是:

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

答案 1 :(得分:1)

这是您想要的吗?

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