在表tab1中,有如下数据。
Col1 Col2 Message (Value can be concatenation of multi messages string after "Hello there" can vary)
-----------------------------------------------------------
I1 L1 Message1|Message2|Hello there D1,D2,D3
I2 L2 Message1|MessageN|Hello there D3,D4,D1
I3 L3 Hello there D3,D5
I4 L4 Message3|Message4
I5 L5 Hello there DN,DN+1
我只需要选择带有“Hello There”字符串的记录,而不选择其他消息,如消息 1,2 .. N 等(仅应选择第三条和第五条记录)
任何人都可以帮助提供有效的方法吗? 我正在尝试如下所示,但它没有给出预期的结果。
select * from tab1 t1 where message like '%Hello there%'
and not exists (select 1 from tab1 t2 where t1.col1=t2.col1 and t1.col2 =t2.col2 and ???)
这就是为什么你没有得到任何结果:
and not exists (select 1 from tab1 t2 where t1.col1=t2.col1 and t1.col2 =t2.col2 and ???)
您选择的是数字1;该声明将永远正确,这意味着它将永远存在。由于您要选择“不存在”时的消息,因此它不会获取任何数据。