有没有一种跨数据库(至少是 SQL Server、Oracle、Postgre、MySQL、SQLite)的方法来完成我在 T-SQL 中使用的操作
SELECT 1 WHERE EXISTS (SELECT * FROM Foo WHERE Bar = 'Quux')
这似乎不是有效的 ANSI SQL 语法,因为没有 FROM 子句。目前我正在使用 COUNT(*) 来执行此操作,但我认为这不是最佳选择。
最佳答案
子查询是不必要的 - 使用:
SELECT DISTINCT
1
FROM Foo
WHERE Bar = 'Quux'
更复杂的版本,使用聚合和 CASE 表达式:
SELECT CASE
WHEN COUNT(*) >= 1 THEN 1
ELSE 0
END
FROM Foo
WHERE Bar = 'Quux'
关于sql - 如何在 ANSI SQL 中进行 EXISTS 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6088876/