gpt4 book ai didi

SQL Select WHERE Column NOT LIKE 跨多行

转载 作者:行者123 更新时间:2023-12-03 03:25:01 25 4
gpt4 key购买 nike

我的表格看起来像这样:

+------+-------+-------------+
ID_Loc Type Data
+------+-------+-------------+
ABC RMKS Hello
ABC NAM Joe Smith
ABD NAM Peter Hill
ABD RMKS Bye Bye
ABD NAM Freddy Tall
ABE NAM Loran Bennett
ABE RMKS Bye Bye
ABF NAM Liv Claris
ABF RMKS Bye Bye
+------+-------+-------------+

我需要选择所有 ID_Loc,其中数据不像“Hello”。当我尝试时:

SELECT distinct ID_loc FROM data_full WHERE DATA NOT LIKE '% Hello' 

这还会选择 ID_Loc: 'ABC',其中数据中包含 'Hello'。此外,由于这将影响相当多的行,因此如果我可以将查询指向仅查看使用 RMKS 类型的行,那就太好了。

我使用的是 MS SQL Server 2008

SQL fiddle 地址是: http://sqlfiddle.com/#!6/38130/6

任何帮助将不胜感激。

最佳答案

如果您需要选择没有与 '%Hello' 模式匹配的记录的 ID_Loc 值,请执行以下查询:

SELECT ID_loc
FROM data_full
group by ID_Loc
having max(case
when DATA LIKE '%Hello' then 1
else 0
end) = 0;

这是结果:http://sqlfiddle.com/#!6/38130/33

如果您还需要应用 Type = 'RMKS' 过滤器,则可以在 WHERE 子句 ( sqlfiddle ) 中执行此操作:

SELECT ID_loc
FROM data_full
where type = 'RMKS'
group by ID_Loc
having max(case
when DATA LIKE '%Hello' then 1
else 0
end) = 0;

关于SQL Select WHERE Column NOT LIKE 跨多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29369372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com