检查表中是否存在给定文本

时间:2018-05-02 14:54:00

标签: sql postgresql exists table-functions

我有一个课程代码名称COMP2221。

我还有一个函数finder(int),可以找到符合特定模式的所有代码。

像:

select * from finder(20004)

会给:

comp2211
comp2311
comp2411
comp2221

匹配模式comp2###

我的问题是如何表达" comp2221是否在finder(20004)"整洁的方式?

1 个答案:

答案 0 :(得分:1)

  

如何以整洁的方式表达“comp2221是否在finder(20004)中”?

使用EXISTS表达式并将测试放入WHERE子句:

SELECT EXISTS (SELECT FROM finder(20004) AS t(code) WHERE code = 'comp2221');

返回单个TRUEFALSE。永远不会为NULL且永远不会超过一行 - 即使您的表函数finder()返回重复项。

或者派遣函数finder()直接集成测试。可能更快。