2017-07-04 46 views
0

我需要执行一个映射,这会对SQL上的句柄征税。SQL条件是搜索子字符串并返回'true'或'false'

我需要知道表格单元格中包含的CSV是否存在子字符串。如果是这样,我需要它返回

这个查询工作在它返回的CSV我需要检查字符串“真正的”其他“假”:

select table.value from table where table.user_id = 1 and table.keyname = 'email_list' 

我正在尝试包括内部的SQL像这样一个条件:

IF ((select table.value from table where table.user_id = 1 and 
table.keyname = 'email_list') LIKE '%substring%') THEN 'true' ELSE 'false' 

但到目前为止还没有运气。这实际上是一个更大的查询的一个组件,它将不同的元素从一个表映射到另一个表,所以我真的需要它返回一个'true'或'false'字符串才能正常工作。

表结构看起来是这样的:

User KEYNAME  value (in the form of CSV) 
1  email_list [email protected], [email protected] 
2  email_list 
3  email_list [email protected] 
4  email_list [email protected], [email protected], [email protected] 
+0

请显示几行样本数据,明确您要在此处做什么。 –

+0

尝试使用Case语句。 – Avi

回答

2

使用CASE语句中的SELECT子句中应该解决您的问题。

喜欢的东西下面

select case when table.value LIKE '%substring%' 
     then 'TRUE' else 'FALSE' end as "Result" 
from table where table.user_id = 1 and 
table.keyname = 'email_list' 
+0

太棒了。这工作。干杯。 –

+0

糟糕,关于不接受答案。如果您有时间,我想知道查询中的'结果'是什么? –

+0

END是结束case语句,它是一种语法。 AS“结果”仅仅是结果列的别名列名。 –

0

SELECT table.value FROM table WHERE EXISTS (select table.value FROM table WHERE table.user_id = 1 AND table.keyname = 'email_list' AND table.value LIKE '%substring%');

我希望这将解决这一问题。

相关问题