了解现有的SQL查询

时间:2014-01-20 19:05:05

标签: sql sql-server

我正在尝试阅读为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

.....我错过了什么,或者这个查询形成了奇怪的开始....我理解加入等......

有人可以帮助我......

由于

2 个答案:

答案 0 :(得分:1)

这是从两个已经临时存在的临时表中选择一个新的临时表。 x1.FIELD1称为别名。它被使用,因此您在编写查询时不必键入完整的表名

答案 1 :(得分:1)

如上所述,#符号表示TEMPORARY表。

x1和x2在此查询中用作“表别名”。是的,你可以写

temp1.FIELD1 = temp2.FIELD2 instead of x1.FIELD1 = x2.FIELD2

但是,请考虑表格是否有长名称。然后使用别名使查询更容易阅读(对于人类而言,计算机并不真正关心)。