我遇到了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;
这里的虚拟数据具有表模式,将帮助您快速回答。
我想要该表的所有记录,但“印度国家”除外,我只想要使用pincode 12345
进行记录。
这是示例输出格式。
对于所有其他国家/地区,我都需要所有记录,但是对于印度,我只想要邮政编码为'12345'的记录;
谢谢。
答案 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'