Compartir a través de


Usar la cláusula FROM

La cláusula FROM es obligatoria en todas las instrucciones SELECT en las que se estén recuperando datos de tablas o vistas. Use la cláusula FROM para lo siguiente:

  • Enumerar las tablas y vistas que contienen las columnas a las que se hace referencia en la lista de selección y en la cláusula WHERE. Los nombres de las tablas y vistas se pueden sustituir por alias mediante la cláusula AS.
  • Tipos de combinación. Se califican mediante condiciones de combinación especificadas en la cláusula ON.

La cláusula FROM es una lista separada por comas de nombres de tablas, nombres de vistas y cláusulas JOIN.

Transact-SQL tiene extensiones que admiten la especificación de objetos que no sean tablas o vistas en la cláusula FROM. Estos otros objetos devuelven un conjunto de resultados, o conjunto de filas en términos de OLE DB, que forman una tabla virtual. La instrucción SELECT funciona entonces como si el conjunto de resultados fuera una tabla.

En la cláusula FROM puede especificar lo siguiente:

  • Una o varias tablas o vistas. Por ejemplo:

    SELECT *
    FROM SalesOrderHeader
    
  • Combinaciones de dos o más tablas o vistas:

    SELECT Cst.CustomerID, St.Name, Ord.ShipDate, Ord.Freight 
    FROM AdventureWorks.Sales.Store AS St
    JOIN AdventureWorks.Sales.Customer AS Cst
    ON St.CustomerID = Cst.CustomerID
    JOIN AdventureWorks.Sales.SalesOrderHeader AS Ord
    ON Cst.CustomerID = Ord.CustomerID
    
  • Una o varias tablas derivadas, que son instrucciones SELECT de la cláusula FROM a las que se hace referencia mediante un alias o un nombre definido por el usuario. El conjunto de resultados de la instrucción SELECT de la cláusula FROM forma una tabla usada por la instrucción SELECT externa. Por ejemplo, la instrucción SELECT siguiente utiliza una tabla derivada para devolver la ciudad en la que vive cada empleado:

    USE AdventureWorks ;
    GO
    SELECT RTRIM(c.FirstName) + ' ' + LTRIM(c.LastName) AS Name,
     d.City
    FROM Person.Contact c
    INNER JOIN HumanResources.Employee e ON c.ContactID = e.ContactID 
    INNER JOIN (SELECT AddressID, City FROM Person.Address) AS d
    ON e.AddressID = d.AddressID
    ORDER BY c.LastName, c.FirstName ;
    
  • Además de las combinaciones, el operador APPLY se puede utilizar en la cláusula FROM para evaluar la entrada de la derecha, que suele ser una función con valores de tabla, comparándola con cada fila de la tabla de entrada de la izquierda y mezclar los resultados de todas estas evaluaciones. Para obtener más información, vea Usar APPLY.

  • Los operadores PIVOT y UNPIVOT se pueden utilizar en la cláusula FROM para cambiar la forma de la tabla de entrada. El operador PIVOT genera nuevas columnas en la salida basándose en los valores de las columnas de su entrada. Para obtener más información, vea Usar PIVOT y UNPIVOT.

  • Una o varias tablas o vistas de un servidor vinculado definido con sp_addlinkedserver. Un servidor vinculado puede ser cualquier origen de datos OLE DB.

  • Un conjunto de filas OLE DB devuelto por las funciones OPENROWSET u OPENQUERY.

La base de las consultas distribuidas de Microsoft SQL Server 2005 son los servidores vinculados, OPENROWSET y OPENQUERY. Permiten consultar o modificar datos de cualquier origen de datos OLE DB como parte de las instrucciones Transact-SQL.

Instrucciones SELECT sin cláusulas FROM

Las instrucciones SELECT que no necesitan una cláusula FROM son las que no seleccionan datos de ninguna tabla de la base de datos. Estas instrucciones SELECT sólo seleccionan datos de las variables locales o de funciones Transact-SQL que no operan en una columna, por ejemplo:

SELECT @MyIntVariable
SELECT @@VERSION
SELECT DB_ID('AdventureWorks')

Vea también

Conceptos

Consultas distribuidas
Usar combinaciones

Otros recursos

OPENQUERY (Transact-SQL)
FROM (Transact-SQL)
OPENROWSET (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005