0

I am trying to read some exiting SQL queries written for MS SQL server.

I don't have access to database, table names etc.. Just raw query format...And I need to do some analysis on the fields required..

I need some help in understanding what certain query statements are doing...such as in the following block...

    select FIELD1, x2.FIELD2
    into #temp
    from #temp1 x1 join #temp2 x2
    on x1.FIELD1 = x2.FIELD2
    and x1.FIELD3 = x2.MAXOCCUR

I have basic SQL understanding.. But I need to understand couple of things....Why does 'into' and 'from' statements have a '#' infront of table names.....what are x1 and x2 in this case. Why not just say

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

.....Am I missing something or is this query formed weird to begin with....I understand joins etc...

Can someone help me out...

Thanks

buzcrawl
  • 103
  • 1
  • 1
  • 9

2 Answers2

1

That is selecting from two already temp existing temp tables into a new temp table. The x1.FIELD1 is called aliasing. It's used so you don't have to type full table names when writing the query

mituw16
  • 5,126
  • 3
  • 23
  • 48
1

As mentioned, the # signs indicate a TEMPORARY table.

x1 and x2 are used as "table alias" in this query. Yes, you could write

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

but, consider if the tables had long names. Then using an alias makes the query easier to read (for humans. the computer doesn't really care).

BWS
  • 3,786
  • 18
  • 25