我正在做下面的事情:
SELECT name1, name2, left(name1,2) + '_' + left(name2,2), ID, ID + left(name1,2) + '_' + left(name2,2)
from person
所以left(name1,2) + '_' + left(name2,2)
被使用了一次以上。有什么方法可以做得更好。我有查询,我必须调用相同的函数链10-15次。
其他例子:
我需要通过子查询获取值的一些查询
e.g。
Select name, (Select something from some_table where X=Y) , age from person
在某些情况下,我确实需要从子查询返回的值为另一列。
e.g。
Select name, (Select something from some_table where X=Y) , age,
left( (Select something from some_table where X=Y),2) as Test
from person
必须有一种更简单的方法......对吧?
答案 0 :(得分:0)
您可以使用外部应用来重复使用代码,如下所示:
Select p.name, x.something, p.age, left(x.something,2) as Test
from person p
outer apply (
Select something from some_table s where s.X=p.Y
) x