我正在使用postgresql 9.3
。我要在表格中选择一列
例如,其值以特定字符开头。我有
水果表,其中我将所有水果名称存储在名为fruitname
的列中。
现在我想要同时返回所有水果名称以字母A
开头
如果没有水果以字母A
开头,那么我需要返回所有带有A
字母的水果。
这里的主要条件是我只想在没有水果的情况下搜索包含字母A
首字母A
。
我试过
SELECT fruitname FROM fruits WHERE fruitname LIKE 'A%'
union all
SELECT fruitname FROM fruits,(SELECT count(*) as cnt FROM fruits
WHERE fruitname LIKE 'A%') t WHERE fruitname LIKE '%A%' and t.cnt= 0
它返回正确的答案,但我需要没有子查询。有可能??
答案 0 :(得分:0)
如何扩展第二个WHERE子句?
SELECT fruitname FROM fruits WHERE fruitname LIKE 'A%'
union all
SELECT fruitname FROM fruits
WHERE fruitname LIKE '%A%' AND NOT fruitname LIKE 'A%'