这是一个可读性问题.性能没有区别.
旧版本的SQL Server足以查找元数据,但不再是.
SELECT foo FROM bar WHERE EXISTS (SELECT * FROM baz WHERE baz.id = bar.id);
SELECT foo FROM bar WHERE EXISTS (SELECT 1 FROM baz WHERE baz.id = bar.id);
Run Code Online (Sandbox Code Playgroud)
我不是在考虑对我来说似乎不直观的NULL或"有趣变体".
SELECT foo FROM bar WHERE EXISTS (SELECT NULL FROM baz WHERE baz.id = bar.id);
SELECT foo FROM bar WHERE EXISTS (SELECT 1/0 FROM baz WHERE baz.id = bar.id);
刚刚在评论中提出了这个问题.我研究了最流行的RDBMS的手册:
SELECT * 在手册中受到青睐.SELECT 1.SELECT * …