Te encuentras en la páginas de Blogsperu, los resultados son los ultimos contenidos del blog. Este es un archivo temporal y puede no representar el contenido actual del mismo.
Visite JSequeiros

Comparte esta página:


Fecha Publicación: Tue, 30 Jan 2018 14:58:53 +0000
declare @sql varbinary(max)
select @sql=sql_handle from sys.sysprocesses 
where spid=321 --Modifica este valor con tu SPID
select text from sys.dm_exec_sql_text(@sql) 

Resultados de la Consulta

Texto SQL de un SPID en SQL Server


Fecha Publicación: Mon, 22 Jan 2018 03:19:40 +0000

Hay dos tipos básicos de OUTER JOINs:  LEFT y RIGHT.  Ambos proporcionan una funcionalidad muy similar, pero existe una pequeña diferencia que depende del orden de las tablas en la consulta.  Usando el artículo de ventas de productos, si comienza a leer la consulta de izquierda a derecha, ¿qué tabla encuentra primero?  La tabla Production.Product, que lo convierte en la tabla de la izquierda.  La segunda tabla que encuentra (sigue leyendo a la derecha) es Sales.  SalesDeerDetail, la tabla derecha.  Esta tendencia continúa durante toda la consulta.
Por lo tanto, si desea recuperar una lista de productos (Production.Product), independientemente de su existencia en las ventas (SalesDeerDetail).
La tabla SalesOrderDetail, una LEFT OUTER JOIN debe ser su elección.  La siguiente figura ilustra un LEFT OUTER JOIN.

LEFT OUTER JOIN en SQL Server

Por otro lado, si intenta recuperar todas las ventas, independientemente de que estén asociadas o no a un producto, debe elegir un RIGHT OUTER JOIN.  La siguiente figura ilustra una RIGHT OUTER JOIN.

RIGHT OUTER JOIN en SQL Server

Independientemente del tipo de OUTER JOIN, la sintaxis es similar a la de INNER JOIN.  Reemplace INNER con LEFT OUTER o RIGHT OUTER.

Escribir una consulta OUTER JOIN

1. Abra el editor de consultas en SSMS.
2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Usar esta consulta para realizar una UNIÓN EXTERIOR  IZQUIERDA
SELECT
p.ProductID,
sd.ProductID,
p.Name AS ProductName,
sd.OrderQty,
sd.UnitPrice
FROM Production.Product AS p
LEFT OUTER JOIN Sales.SalesOrderDetail sd
ON p.ProductID = sd.ProductID
 

Resultados de la Consulta

La siguiente imagen muestra los resultados de la consulta LEFT OUTER JOIN

Resultados de la consulta  LEFT OUTER JOIN en SQL Server

Si se desplaza hacia abajo en el conjunto de resultados, debería comenzar a ver valores NULOS en las columnas que forman parte de la tabla Sales.SalesOrderDetail.  Este es un resultado directo del uso de una OUTER JOIN. Recuerde el área sombreada de la Figura 10-2 que ilustra el conjunto de resultados de un LEFT OUTER JOIN.  Las filas devueltas por la consulta son lo que debe esperar.  No solo se devuelven los productos asociados con las ventas, sino también los que no tienen ventas.


Fecha Publicación: Wed, 17 Jan 2018 20:49:44 +0000

DISTINCT devuelve una lista única o distinta de valores de cada columna especificada en una instrucción SELECT. Si hay valores duplicados en la lista, se eliminarán todos los valores duplicados excepto uno. Por ejemplo, si ejecuta la siguiente consulta, el resultado devuelve una lista de productos con algunos de los nombres de productos repetidos varias veces:

USE AdventureWorks2012;
SELECT
p.Name AS ProductName
FROM Production.Product AS p
INNER JOIN Sales.SalesOrderDetail sd
ON p.ProductID = sd.ProductID

Al colocar DISTINCT inmediatamente después de la palabra clave SELECT, elimina los duplicados de la lista. Además, si desea limitar el resultado a solo productos que no se han enviado, agregue la cláusula WHERE. En este ejemplo, la cláusula WHERE debe identificar todas las filas de SalesOrderProduct que contienen NULL CarrierTrackingNumber.

El valor NULL es un valor especial. En realidad, no es un valor en absoluto, es la ausencia de un valor. Como resultado, hay valores de comparación especiales que se pueden usar al hacer referencia a ellos en una cláusula WHERE. Si está buscando NULLs, usaría lo siguiente:

WHERE <column name> IS NULL

Si está buscando columnas que NOT NULLs, debería usar esto:

WHERE <column name> IS NOT NULL

En este ejemplo, está buscando todos los productos que no se han enviado, en otras palabras, todas las filas en el conjunto de resultados que tienen un valor NULO para la columna SalesOrderDetail CarrierTrackingNumber.

El siguiente paso es eliminar todas las columnas, si las hay, además de la columna Nombre del producto de la lista de columnas. De lo contrario, la distinción de cada fila se basará en todas las columnas de la instrucción SELECT en lugar de únicamente en la columna Nombre del producto. Finalmente, si aún no se ha incluido, coloque la palabra clave DISTINCT entre la palabra clave SELECT y el nombre de la columna.

Escribir una consulta que incluya DISTINCT

1. Abra el editor de consultas en SSMS.

2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Utilice esta consulta para devolver una lista distinta de productos que no se han enviado
USE AdventureWorks2012;
SELECT DISTINCT
p.Name AS ProductName
FROM Production.Product AS p
INNER JOIN Sales.SalesOrderDetail sd
ON p.ProductID = sd.ProductID
WHERE
sd.CarrierTrackingNumber IS NULL
order by productname

Resultados de la consulta:

Clausula DISTINCT y NULL en SQL Server


Fecha Publicación: Tue, 16 Jan 2018 20:39:41 +0000

A menudo tendrá dos instrucciones SELECT que pueden necesitar combinarse en un resultado para el consumo de una aplicación o usuario final. Con la palabra clave UNION, puede lograr eso.
UNION tiene dos variaciones:

  • Solo UNION, que elimina las filas duplicadas en su conjunto de resultados.
  • UNION ALL, que incluye duplicados. Si los duplicados son posibles, debe usar UNION ALL; es mucho más rápido porque no tiene que incluir DISTINCT.

El siguiente pseudocódigo ilustra el uso de UNION:

SELECT column1, column2 FROM TABLE1
UNION
SELECT column1, column2 FROM TABLE2

Al escribir una consulta con UNION, ambas declaraciones SELECT deben contener el mismo número de columnas, y los tipos de datos deben coincidir para cada columna. Cuando utilice UNION, proporcione solo una cláusula ORDER BY después de la última instrucción SELECT.

Escribir una consulta que incluya UNION

1. Abra el editor de consultas en SSMS.
2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Utilice esta consulta para devolver una lista de productos  que son negros y plateados
USE AdventureWorks2012;
SELECT
Name AS ProductName
FROM Production.Product
WHERE
Color = 'Black'
UNION
SELECT
Name AS ProductName
FROM Production.Product
WHERE
Color = 'Silver'

Resultado de la consulta que incluye UNION

Uso de la clausula UNION ALL en SQL Server

Categorias: 

Fecha Publicación: Tue, 16 Jan 2018 19:47:09 +0000

Además de utilizar una cláusula WHERE en la consulta, tiene varias otras formas de limitar los datos devueltos en el conjunto de resultados. Si bien existe una larga lista de métodos y técnicas que puede utilizar, SQL Server ofrece palabras clave que proporcionan un enfoque muy simplista para limitar el conjunto de resultados.

Uso de Top

La palabra clave TOP limita el número de filas que se devuelven en un resultado a un número específico de filas o a un porcentaje específico de filas. La parte superior debe usarse siempre con la cláusula ORDER BY. En la mayoría de los casos, buscará el conjunto de valores más alto o más bajo para una columna dada, y la ordenación de los datos le proporcionará esa información. Por ejemplo, si desea devolver las cinco ventas principales de su tabla de ventas, añada TOP (5) inmediatamente después de la palabra clave SELECT. Además, se incluye una cláusula ORDER BY especificando la columna que contenía el valor de ventas real para cada fila como la columna de pedido.

Escribiendo una consulta TOP

1. Abrir el editor de consultas en SSMS.
2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Utilice esta consulta para devolver las 5 principales  ventas
USE AdventureWorks2012;
SELECT TOP(5)
SalesOrderID,
OrderDate,
SalesOrderNumber,
TotalDue
FROM Sales.SalesOrderHeader
ORDER BY
TotalDue DESC

Resultados de la consulta TOP:

Uso de la clausula TOP en SQL Server


Fecha Publicación: Mon, 15 Jan 2018 02:59:56 +0000

Independientemente de si está escribiendo una unión INNER o una unión OUTER, comienza con una instrucción SELECT básica.  Utilizará la siguiente consulta como punto de partida:

USE AdventureWorks2012;
SELECT
p.FirstName,
p.LastName
FROM Person.Person p

La tabla en la cláusula FROM debe incluir una columna con los valores que existen en la tabla que planea unir.  En este caso, le gustaría incluir una dirección de correo electrónico en el conjunto de resultados.  Para lograr esto, debe hacer referencia a una segunda tabla en la consulta, como se ilustra en la siguiente consulta:

--correr la consulta
USE AdventureWorks2012;
SELECT
p.FirstName,
p.LastName,
ea.EmailAddress
FROM Person.Person AS p
INNER JOIN Person.EmailAddress AS ea
ON p.BusinessEntityID = ea.BusinessEntityID

La sintaxis JOIN en SQL Server

La palabra clave INNER JOIN ha sido incluida, lo que le permite especificar una segunda tabla en la consulta.  El INNER JOIN o cualquier JOIN debe combinarse con la palabra clave ON.  En la cláusula ON, especifique qué columna o columnas se usarán para unir (JOIN) las dos tablas.  La clave para unir dos tablas con éxito es identificar los datos que se cruzan, que normalmente se alinean a través de la clave principal y las relaciones de clave externa.  Si desea realizar un LEFT OUTER ó RIGHT OUTER JOIN en la consulta anterior, reemplace INNER con LEFT OUTER ó RIGHT OUTER.

Nota:  Se puede unir varias tablas en una instrucción SELECT al incluir acoplamientos adicionales JOIN y ON.


Fecha Publicación: Sat, 13 Jan 2018 03:22:46 +0000
/*-->*/

De los tres operadores de JOIN más comúnmente utilizados, INNER JOIN es el que se utilizará con regularidad.  INNER JOIN es una coincidencia de igualdad entre dos o más tablas.  Por ejemplo, supongamos que tiene una tabla que contiene productos (Product) y otra que contiene ventas (Sales), y desea encontrar solo los productos que se han vendido.  Básicamente, estás buscando la intersección de las dos tablas con algún valor.  La siguiente figura ilustra la intersección.

Uso de INNER JOIN en SQL Server

FIGURA :Una intersección INNER JOIN.



La sección sombreada de la figura anterior representa las filas que se devolverán de una consulta que se uniría a las tablas Sales y Product.

Categorias: 

Fecha Publicación: Fri, 12 Jan 2018 02:39:55 +0000

Se puede crear alias, que pueden ser un nombre más breve o más comprensible, para nombres de tablas y columnas, lo que facilita el trabajo con agregaciones, expresiones y consultas que involucran varias tablas.  Además, la base de datos puede contener nombres de columnas muy crípticos, y es posible proporcionar nombres que sean más significativos para las aplicaciones y los usuarios finales.  Usar alias permite cambiar el nombre o acortar los nombres de tablas y columnas.

Crear alias de una tabla y columna

1. Abra el editor de consultas en SSMS.

2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

-- Utilice esta consulta para alias de  una tabla y columna
  USE  AdventureWorks2012;
  SELECT
  DepartmentID,
  Name  AS DepartmentName,
  GroupName  AS DepartmentGroupName
  FROM  HumanResources.Department AS d

Alias ​​de una tabla y columna en SQL Server

En la consulta anterior, la columna Name se renombra como DepartmentName, la columna GroupName se renombra como DepartmentGroupName y a la tabla se renombra como simplemente d. Ahora puede hacer referencia a la tabla como d en lugar de todo el nombre de la tabla en toda la consulta.
Nota La palabra clave AS utilizada en la consulta anterior es opcional cuando se crea el alias de los elementos  en una consulta de SQL Server.  Esto significa que el nombre de la tabla original no se puede usar por más tiempo, por lo que HumanResources.Department.DepartmentName ya no se resolverá en la consulta.

Categorias: 

Fecha Publicación: Thu, 11 Jan 2018 02:12:40 +0000

La variación final de la cláusula WHERE cubierta aquí es la búsqueda de comodines. Por ejemplo, supongamos que desea devolver todos los departamentos de su organización que comienzan con las letras PR.  Para hacer esto, usa una comparación LIKE. Cuando utiliza LIKE, SQL Server puede determinar si un carácter o cadena de caracteres especificados coincide con un valor en su base de datos.

Uso la cláusula LIKE

1. Abra el editor de consultas en SSMS.
2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Utilice esta consulta para filtrar los resultados usando  LIKE
  USE  AdventureWorks2012;
  SELECT  *
  FROM  HumanResources.Department
  WHERE
  Name LIKE 'Pr%'

Búsqueda con caracteres comodín en SQL Server

El Pr% usado en la consulta anterior le dice a SQL Server que devuelva todos los departamentos cuyo nombre comienza con Pr y los siguientes caracteres.
La sintaxis LIKE no usa un conjunto comodín típico de expresiones regulares.  Como se demostró en el script anterior, el % representa cualquier cadena de cero o más caracteres. Además, otros caracteres comodines son los siguientes:

  • _ (Representa cualquier caracter en la posición que sea colocada.)
  • [abc] (Representa un conjunto de caracteres válidos en la posición que sea colocada.)
  • [^ abc] (Representa un solo carácter que no está en el conjunto de caracteres)

Fecha Publicación: Tue, 09 Jan 2018 21:41:05 +0000

Otro escenario típico implica recuperar un conjunto de resultados basado en una lista de valores. Por ejemplo, es posible que se desea recuperar todas las ventas para una lista particular de productos. Al usar el operador IN, SQL Server determina si los elementos en una lista especificada coinciden con el valor especificado.

Uso del operador IN

1. Abra el editor de consultas en SSMS.
2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Utilice esta consulta para filtrar los resultados con el operador IN
USE AdventureWorks2012;
SELECT
SalesOrderDetailID,
OrderQty,
ProductID,
ModifiedDate
FROM Sales.SalesOrderDetail s
WHERE
ProductID IN (776, 778, 747, 809)

Buscando una lista de valores en SQL Server