我正在尝试阅读为MS SQL服务器编写的一些现有SQL查询。
我无法访问数据库,表名等。只是原始查询格式......我需要对所需的字段进行一些分析..
我需要一些帮助来理解某些查询语句正在做什么......例如在下面的块中......
select FIELD1, x2.FIELD2
into #temp
from #temp1 x1 join #temp2 x2
on x1.FIELD1 = x2.FIELD2
and x1.FIELD3 = x2.MAXOCCUR
我有基本的SQL理解..但我需要理解几件事......为什么'into'和'from'语句在表名前面有'#'.....什么是x1和在这种情况下为x2。为什么不直接说
temp1.FIELD1 = temp2.FIELD2 instead of
x1.FIELD1 = x2.FIELD2
.....我错过了什么,或者这个查询形成了奇怪的开始....我理解加入等......
有人可以帮助我......
由于
答案 0 :(得分:1)
这是从两个已经临时存在的临时表中选择一个新的临时表。 x1.FIELD1
称为别名。它被使用,因此您在编写查询时不必键入完整的表名
答案 1 :(得分:1)
如上所述,#符号表示TEMPORARY表。
x1和x2在此查询中用作“表别名”。是的,你可以写
temp1.FIELD1 = temp2.FIELD2 instead of x1.FIELD1 = x2.FIELD2
但是,请考虑表格是否有长名称。然后使用别名使查询更容易阅读(对于人类而言,计算机并不真正关心)。