我从函数getPattern(整数)得到的是:
哪里' .... 3 ...'是一种模式(如comp3333匹配)。
我想打印出所有不包含的图案。'
所以我这样做:
SELECT pattern as pn
FROM getPattern($1)
WHERE EXISTS (SELECT pattern as pr
FROM getPattern($1)
WHERE pr ~* '^[A-Z]{4}[0-9]{4}$')
AND pn ~* '^[A-Z]{4}[0-9]{4}$'
有时当我们使用函数getPattern(int)时,结果可能不包含没有'。'的任何模式,这就是错误显示的内容:
我应该以一种干净的方式做什么?
答案 0 :(得分:0)
您不能在WHERE子句中使用别名。在这个子查询中,无论如何都不需要:
(SELECT pattern as pr FROM getPattern($1) WHERE pr ~* '^[A-Z]{4}[0-9]{4}$')
所以只需将其更改为:
(SELECT pattern FROM getPattern($1) WHERE pattern ~* '^[A-Z]{4}[0-9]{4}$')