Ale*_*nic 15 mysql sql sql-server postgresql
可能重复:
SQL Server的隐藏功能
什么是SQL提供的专业/微妙技术,而不是很多人知道哪些技术也削减了代码并提高了性能?
例如:我刚学会了如何在聚合函数中使用CASE语句,它完全改变了我的方法.
还有其他人吗?
更新:基本上任何供应商.但PostgreSQL如果你只想关注一个:D
SQL GROUP BY - CUBE,ROLLUP子句
分析(AKA排名,AKA窗口)功能 IE:
视图:正常和物化
如果不引用供应商特定的语法,很难说很多
存在.令我惊讶的是,当EXISTS可以更快地完成工作时,有多少人在检查存在或IN(SELECT ...)子句时仍然使用COUNT(*).
最常见的是你可能会看到:
SELECT @MyVar = Count(*) FROM Table1 WHERE....
If @MyVar <> 0
BEGIN
--do something
END
Run Code Online (Sandbox Code Playgroud)
什么时候
IF EXISTS(SELECT 1 FROM Table1 WHERE...)
BEGIN
--don something
END
Run Code Online (Sandbox Code Playgroud)
总是更好.
SELECT... EXCEPT SELECT...
Run Code Online (Sandbox Code Playgroud)
和
SELECT... INTERSECT SELECT...
Run Code Online (Sandbox Code Playgroud)
在挑选出不同的或共同的行 - 这对于行中的所有列 - 在集合之间是有用的(并且令人不安地有效).当你有很多列时,这非常有用.