使用make函数(缩放器和表值)比使用多个表一次又一次的复杂连接是一个好习惯。 例如
案例1:
SELECT
*
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID=t2.ID
INNER JOIN table2 t3 ON t2.ID=t3.ID
INNER JOIN table2 t4 ON t3.ID=t4.ID
INNER JOIN table2 t5 ON t4.ID=t5.ID
INNER JOIN table2 t6 ON t5.ID=t6.ID
INNER JOIN table2 t7 ON t6.ID=t7.ID
案例2
SELECT *
FROM table1 t1
INNER JOIN udf_myFunc() udf ON udf.ID=t1.ID
是否存在一种方法具有明确优势的情况?
答案 0 :(得分:1)
为了便于阅读,#1更好 - 它清楚对象在做什么,即使它更详细。
为了重复使用,#2更好 - 特别是如果您看到逻辑可能会在多个电话中发生变化,最好只在一个地方进行更改。
我想这取决于你的目标是什么。我通常选择可读性而不是重复使用。
答案 1 :(得分:1)
没有。
答案 2 :(得分:1)
取决于。
apply
中使用时特别糟糕。where
条件中的值。答案 3 :(得分:0)
我必须投票反对功能方向。如果没有其他原因,它会混淆意图。此外,如果您重复使用它可能会节省一些工作,但这是唯一可能的好处,因为它不会提高性能。
当你必须按摩某个特定的数据时,我喜欢函数,但是使用一个来避免连接是处理事情的一种讨厌的方法。