Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup microsoft.public.es.* 1 Foro > Newsgroup microsoft.public.es.sqlserver
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 02-02-2008, 01:11:32
daniel
 
Mensajes: n/a
Predeterminado Clausula SELECT

Hola soy nuevo en SQL, estoy aprendiendo, pero en algunos ejemplos que estoy
siguiendo, he encontrado que en la clausula SELECT que es para especificar
el o los nombres de las columnas que deseo consultar de la tabla, he visto
que algunos nombres de columnas empiezan con dos letras mas punto (.) y el
nombre de la tabla, por ejemplo:

SELECT sp.SalesPersonID FROM Sales.SalesPerson sp.

Y nose que significa ese "sp." antes del nombre de la columna ya que el
nombre de la columna solamente se llama "SalesPersonID", ademas quisiera
saber si ese "sp" del utimo en la sentencia significa un alias para la tabla
"Sales.SalesPerson".

Gracias.

Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 02-02-2008, 02:01:01
Alejandro Mesa
 
Mensajes: n/a
Predeterminado RE: Clausula SELECT

Hola Daniel,

Asi mismo es. En este caso "sp" es el alias que se le da a la tabla. Cuando
la sentencia "select" incluye solo una tabla, sin sentencias correlacionadas,
derivadas, etc., entonces no es necesario usar este alias para la tabla
porque cualquier nombre de columna estara refiriendose a la tabla
referenciada. En cambio, si referenciamos varias tablas, entonces es mas
leible usar un alias por tabla y referirnos al alias en vez de al nombre de
la tabla, sobre todo cuando los nombres son un poquito largos. Tambien para
evitar que se referencie una columna que forma parte de ambas tablas, con lo
cual SQL Server no sabria a cual tabla te estas refiriendo.

select
c.CustomerID,
c.ompanyName,
oh.OrderID,
oh.OrderDate
from
dbo.Orders as oh
inner join
dbo.Customers as c
on oh.CustomerID = c.CustomerID

Es buena practica usar [AS] antes del alias, tanto en columnas como en
tablas. Ve si puedes detectar donde esta el error. El resultado debe ser
vacio, nada, pero en cambio devuelve dos conjuntos.

-- SQL Server 2005
SELECT 1
INTERCEPT
SELECT 2

El operador INTERCEPT no existe en SQL Server. En la version 2005 contamos
con el operador INTERSEPT, el cual nos devuelve las filas que se cruzan entre
los dos conjuntos. Lo que pasa es que SQL Server interpreta que el alias de
la primera columna es INTERCEPT, es como re-escribir la sentencia asi:

SELECT 1 INTERCEPT
SELECT 2

Si usamos la palara [AS] antes del alias entonces se podria evitar la
confusion o el mal entendimiento.

SELECT 1 AS INTERCEPT
SELECT 2

-- Esto fallara
SELECT 1 as c1
INTERCEPT
SELECT 2 as c1
GO

SELECT 1 as c1
INTERSEPT
SELECT 2 as c1
GO

AMB

"daniel" wrote:

> Hola soy nuevo en SQL, estoy aprendiendo, pero en algunos ejemplos que estoy
> siguiendo, he encontrado que en la clausula SELECT que es para especificar
> el o los nombres de las columnas que deseo consultar de la tabla, he visto
> que algunos nombres de columnas empiezan con dos letras mas punto (.) y el
> nombre de la tabla, por ejemplo:
>
> SELECT sp.SalesPersonID FROM Sales.SalesPerson sp.
>
> Y nose que significa ese "sp." antes del nombre de la columna ya que el
> nombre de la columna solamente se llama "SalesPersonID", ademas quisiera
> saber si ese "sp" del utimo en la sentencia significa un alias para la tabla
> "Sales.SalesPerson".
>
> Gracias.
>
>

Responder Con Cita
  #3 (permalink)  
Antiguo 02-02-2008, 22:47:33
daniel
 
Mensajes: n/a
Predeterminado Re: Clausula SELECT

Gracias Alejandro pero no entiendo eso de "inner join" a que te refieres
con:

from
dbo.Orders as oh
inner join
dbo.Customers as c
on oh.CustomerID = c.CustomerID


"Alejandro Mesa" <AlejandroMesa***discussions.microsoft.com> escribió en el
mensaje de noticias
news:5379D07C-4723-4088-AFC4-667B978C1F03***microsoft.com...
> Hola Daniel,
>
> Asi mismo es. En este caso "sp" es el alias que se le da a la tabla.
> Cuando
> la sentencia "select" incluye solo una tabla, sin sentencias
> correlacionadas,
> derivadas, etc., entonces no es necesario usar este alias para la tabla
> porque cualquier nombre de columna estara refiriendose a la tabla
> referenciada. En cambio, si referenciamos varias tablas, entonces es mas
> leible usar un alias por tabla y referirnos al alias en vez de al nombre
> de
> la tabla, sobre todo cuando los nombres son un poquito largos. Tambien
> para
> evitar que se referencie una columna que forma parte de ambas tablas, con
> lo
> cual SQL Server no sabria a cual tabla te estas refiriendo.
>
> select
> c.CustomerID,
> c.ompanyName,
> oh.OrderID,
> oh.OrderDate
> from
> dbo.Orders as oh
> inner join
> dbo.Customers as c
> on oh.CustomerID = c.CustomerID
>
> Es buena practica usar [AS] antes del alias, tanto en columnas como en
> tablas. Ve si puedes detectar donde esta el error. El resultado debe ser
> vacio, nada, pero en cambio devuelve dos conjuntos.
>
> -- SQL Server 2005
> SELECT 1
> INTERCEPT
> SELECT 2
>
> El operador INTERCEPT no existe en SQL Server. En la version 2005 contamos
> con el operador INTERSEPT, el cual nos devuelve las filas que se cruzan
> entre
> los dos conjuntos. Lo que pasa es que SQL Server interpreta que el alias
> de
> la primera columna es INTERCEPT, es como re-escribir la sentencia asi:
>
> SELECT 1 INTERCEPT
> SELECT 2
>
> Si usamos la palara [AS] antes del alias entonces se podria evitar la
> confusion o el mal entendimiento.
>
> SELECT 1 AS INTERCEPT
> SELECT 2
>
> -- Esto fallara
> SELECT 1 as c1
> INTERCEPT
> SELECT 2 as c1
> GO
>
> SELECT 1 as c1
> INTERSEPT
> SELECT 2 as c1
> GO
>
> AMB
>
> "daniel" wrote:
>
>> Hola soy nuevo en SQL, estoy aprendiendo, pero en algunos ejemplos que
>> estoy
>> siguiendo, he encontrado que en la clausula SELECT que es para
>> especificar
>> el o los nombres de las columnas que deseo consultar de la tabla, he
>> visto
>> que algunos nombres de columnas empiezan con dos letras mas punto (.) y
>> el
>> nombre de la tabla, por ejemplo:
>>
>> SELECT sp.SalesPersonID FROM Sales.SalesPerson sp.
>>
>> Y nose que significa ese "sp." antes del nombre de la columna ya que el
>> nombre de la columna solamente se llama "SalesPersonID", ademas quisiera
>> saber si ese "sp" del utimo en la sentencia significa un alias para la
>> tabla
>> "Sales.SalesPerson".
>>
>> Gracias.
>>
>>


Responder Con Cita
  #4 (permalink)  
Antiguo 03-02-2008, 03:08:00
Alejandro Mesa
 
Mensajes: n/a
Predeterminado Re: Clausula SELECT

daniel,

> Gracias Alejandro pero no entiendo eso de "inner join" a que te refieres
> con:
>
> from
> dbo.Orders as oh
> inner join
> dbo.Customers as c
> on oh.CustomerID = c.CustomerID


Es la operacion de union de ambas tablas por las columnas que definen su
relacion.

La tabla de ordenes hace referencia a la tabla de clientes atraves de la
columna CustomerID, por lo que si deseamos traer mas informacion sobre el
cliente de una orden, habra que unir ambas tablas.


AMB

"daniel" wrote:

> Gracias Alejandro pero no entiendo eso de "inner join" a que te refieres
> con:
>
> from
> dbo.Orders as oh
> inner join
> dbo.Customers as c
> on oh.CustomerID = c.CustomerID
>
>
> "Alejandro Mesa" <AlejandroMesa***discussions.microsoft.com> escribió en el
> mensaje de noticias
> news:5379D07C-4723-4088-AFC4-667B978C1F03***microsoft.com...
> > Hola Daniel,
> >
> > Asi mismo es. En este caso "sp" es el alias que se le da a la tabla.
> > Cuando
> > la sentencia "select" incluye solo una tabla, sin sentencias
> > correlacionadas,
> > derivadas, etc., entonces no es necesario usar este alias para la tabla
> > porque cualquier nombre de columna estara refiriendose a la tabla
> > referenciada. En cambio, si referenciamos varias tablas, entonces es mas
> > leible usar un alias por tabla y referirnos al alias en vez de al nombre
> > de
> > la tabla, sobre todo cuando los nombres son un poquito largos. Tambien
> > para
> > evitar que se referencie una columna que forma parte de ambas tablas, con
> > lo
> > cual SQL Server no sabria a cual tabla te estas refiriendo.
> >
> > select
> > c.CustomerID,
> > c.ompanyName,
> > oh.OrderID,
> > oh.OrderDate
> > from
> > dbo.Orders as oh
> > inner join
> > dbo.Customers as c
> > on oh.CustomerID = c.CustomerID
> >
> > Es buena practica usar [AS] antes del alias, tanto en columnas como en
> > tablas. Ve si puedes detectar donde esta el error. El resultado debe ser
> > vacio, nada, pero en cambio devuelve dos conjuntos.
> >
> > -- SQL Server 2005
> > SELECT 1
> > INTERCEPT
> > SELECT 2
> >
> > El operador INTERCEPT no existe en SQL Server. En la version 2005 contamos
> > con el operador INTERSEPT, el cual nos devuelve las filas que se cruzan
> > entre
> > los dos conjuntos. Lo que pasa es que SQL Server interpreta que el alias
> > de
> > la primera columna es INTERCEPT, es como re-escribir la sentencia asi:
> >
> > SELECT 1 INTERCEPT
> > SELECT 2
> >
> > Si usamos la palara [AS] antes del alias entonces se podria evitar la
> > confusion o el mal entendimiento.
> >
> > SELECT 1 AS INTERCEPT
> > SELECT 2
> >
> > -- Esto fallara
> > SELECT 1 as c1
> > INTERCEPT
> > SELECT 2 as c1
> > GO
> >
> > SELECT 1 as c1
> > INTERSEPT
> > SELECT 2 as c1
> > GO
> >
> > AMB
> >
> > "daniel" wrote:
> >
> >> Hola soy nuevo en SQL, estoy aprendiendo, pero en algunos ejemplos que
> >> estoy
> >> siguiendo, he encontrado que en la clausula SELECT que es para
> >> especificar
> >> el o los nombres de las columnas que deseo consultar de la tabla, he
> >> visto
> >> que algunos nombres de columnas empiezan con dos letras mas punto (.) y
> >> el
> >> nombre de la tabla, por ejemplo:
> >>
> >> SELECT sp.SalesPersonID FROM Sales.SalesPerson sp.
> >>
> >> Y nose que significa ese "sp." antes del nombre de la columna ya que el
> >> nombre de la columna solamente se llama "SalesPersonID", ademas quisiera
> >> saber si ese "sp" del utimo en la sentencia significa un alias para la
> >> tabla
> >> "Sales.SalesPerson".
> >>
> >> Gracias.
> >>
> >>

>
>

Responder Con Cita
  #5 (permalink)  
Antiguo 03-02-2008, 21:34:53
daniel
 
Mensajes: n/a
Predeterminado Re: Clausula SELECT

Ok, gracias Alejandro ya entendÃ***.

"Alejandro Mesa" <AlejandroMesa***discussions.microsoft.com> escribió en el
mensaje de noticias
news:7A8B5C4C-0B0A-42CE-9550-8E795806AC66***microsoft.com...
> daniel,
>
>> Gracias Alejandro pero no entiendo eso de "inner join" a que te refieres
>> con:
>>
>> from
>> dbo.Orders as oh
>> inner join
>> dbo.Customers as c
>> on oh.CustomerID = c.CustomerID

>
> Es la operacion de union de ambas tablas por las columnas que definen su
> relacion.
>
> La tabla de ordenes hace referencia a la tabla de clientes atraves de la
> columna CustomerID, por lo que si deseamos traer mas informacion sobre el
> cliente de una orden, habra que unir ambas tablas.
>
>
> AMB
>
> "daniel" wrote:
>
>> Gracias Alejandro pero no entiendo eso de "inner join" a que te refieres
>> con:
>>
>> from
>> dbo.Orders as oh
>> inner join
>> dbo.Customers as c
>> on oh.CustomerID = c.CustomerID
>>
>>
>> "Alejandro Mesa" <AlejandroMesa***discussions.microsoft.com> escribió en el
>> mensaje de noticias
>> news:5379D07C-4723-4088-AFC4-667B978C1F03***microsoft.com...
>> > Hola Daniel,
>> >
>> > Asi mismo es. En este caso "sp" es el alias que se le da a la tabla.
>> > Cuando
>> > la sentencia "select" incluye solo una tabla, sin sentencias
>> > correlacionadas,
>> > derivadas, etc., entonces no es necesario usar este alias para la tabla
>> > porque cualquier nombre de columna estara refiriendose a la tabla
>> > referenciada. En cambio, si referenciamos varias tablas, entonces es
>> > mas
>> > leible usar un alias por tabla y referirnos al alias en vez de al
>> > nombre
>> > de
>> > la tabla, sobre todo cuando los nombres son un poquito largos. Tambien
>> > para
>> > evitar que se referencie una columna que forma parte de ambas tablas,
>> > con
>> > lo
>> > cual SQL Server no sabria a cual tabla te estas refiriendo.
>> >
>> > select
>> > c.CustomerID,
>> > c.ompanyName,
>> > oh.OrderID,
>> > oh.OrderDate
>> > from
>> > dbo.Orders as oh
>> > inner join
>> > dbo.Customers as c
>> > on oh.CustomerID = c.CustomerID
>> >
>> > Es buena practica usar [AS] antes del alias, tanto en columnas como en
>> > tablas. Ve si puedes detectar donde esta el error. El resultado debe
>> > ser
>> > vacio, nada, pero en cambio devuelve dos conjuntos.
>> >
>> > -- SQL Server 2005
>> > SELECT 1
>> > INTERCEPT
>> > SELECT 2
>> >
>> > El operador INTERCEPT no existe en SQL Server. En la version 2005
>> > contamos
>> > con el operador INTERSEPT, el cual nos devuelve las filas que se cruzan
>> > entre
>> > los dos conjuntos. Lo que pasa es que SQL Server interpreta que el
>> > alias
>> > de
>> > la primera columna es INTERCEPT, es como re-escribir la sentencia asi:
>> >
>> > SELECT 1 INTERCEPT
>> > SELECT 2
>> >
>> > Si usamos la palara [AS] antes del alias entonces se podria evitar la
>> > confusion o el mal entendimiento.
>> >
>> > SELECT 1 AS INTERCEPT
>> > SELECT 2
>> >
>> > -- Esto fallara
>> > SELECT 1 as c1
>> > INTERCEPT
>> > SELECT 2 as c1
>> > GO
>> >
>> > SELECT 1 as c1
>> > INTERSEPT
>> > SELECT 2 as c1
>> > GO
>> >
>> > AMB
>> >
>> > "daniel" wrote:
>> >
>> >> Hola soy nuevo en SQL, estoy aprendiendo, pero en algunos ejemplos que
>> >> estoy
>> >> siguiendo, he encontrado que en la clausula SELECT que es para
>> >> especificar
>> >> el o los nombres de las columnas que deseo consultar de la tabla, he
>> >> visto
>> >> que algunos nombres de columnas empiezan con dos letras mas punto (.)
>> >> y
>> >> el
>> >> nombre de la tabla, por ejemplo:
>> >>
>> >> SELECT sp.SalesPersonID FROM Sales.SalesPerson sp.
>> >>
>> >> Y nose que significa ese "sp." antes del nombre de la columna ya que
>> >> el
>> >> nombre de la columna solamente se llama "SalesPersonID", ademas
>> >> quisiera
>> >> saber si ese "sp" del utimo en la sentencia significa un alias para la
>> >> tabla
>> >> "Sales.SalesPerson".
>> >>
>> >> Gracias.
>> >>
>> >>

>>
>>


Responder Con Cita
 
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Clausula IN Manolo Zepeda Newsgroup microsoft.public.es.dotnet.vb 12 28-08-2008 21:00:01
Cómo almacenar una Cláusula WHERE en una variable Faiverlgr Newsgroup microsoft.public.es.vfoxpro 6 24-04-2008 00:16:02
restriccion en clausula IN ?? DarthSidious Newsgroup microsoft.public.es.sqlserver 2 05-03-2008 13:12:01
clausula group by Mayo Newsgroup microsoft.public.es.vfoxpro.datos 6 12-04-2006 15:09:39
XML y XSLT: cargar select en función de otro select Chino Newsgroup microsoft.public.es.xml 0 20-12-2004 13:48:21





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2009, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.