请问一个oracle中的sql查询语句写法:

怎么样通过YWLX,查出来SLBH中土地和房屋都是一个排除掉
关注让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek
如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞
YWLX 字段进行判断,并且要排除 SLBH 中同时包含“土地”和“房屋”的记录。your_table,字段分别为 YWLX 和 SLBH。NOT EXISTS 子查询来实现。示例代码如下:sql
SELECT *
FROM your_table
WHERE YWLX = '特定值'
AND NOT EXISTS (
SELECT 1
FROM your_table sub
WHERE sub.YWLX = your_table.YWLX
AND sub.SLBH LIKE '%土地%'
AND sub.SLBH LIKE '%房屋%'
);YWLX = '特定值' 是你要查询的具体 YWLX 值,可以根据实际情况修改。子查询通过 NOT EXISTS 来排除同时包含“土地”和“房屋”的记录。NOT EXISTS:NOT IN:NOT EXISTS,特别是在子查询结果集较大时。示例:sql
SELECT *
FROM your_table
WHERE YWLX = '特定值'
AND SLBH NOT IN (
SELECT SLBH
FROM your_table
WHERE SLBH LIKE '%土地%'
AND SLBH LIKE '%房屋%'
);EXCEPT(Oracle 11g 及以上版本支持):sql
SELECT *
FROM your_table
WHERE YWLX = '特定值'
AND SLBH NOT IN (
SELECT SLBH
FROM your_table
WHERE SLBH LIKE '%土地%'
AND SLBH LIKE '%房屋%'
)
EXCEPT
SELECT *
FROM your_table
WHERE YWLX = '特定值'
AND SLBH IN (
SELECT SLBH
FROM your_table
WHERE SLBH LIKE '%土地%'
AND SLBH LIKE '%房屋%'
);NOT EXISTS 通常在排除特定条件记录时是一个比较可靠且性能较好的选择。请注意,以上代码中的表名和字段名需要根据你的实际情况进行修改。
希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。