繁体   English   中英

使用不同行中的值查询同一张表

[英]Make a query to the same table with values in different Rows

我必须在同一行结果中显示SQL示例中表的2行中的结果:

**Name     Lastname  address        U_Name**
John     Smith     123 N Av       NULL
E-mail   NULL      js@123.com     John

Result
**Name    Last name   e-mail**
John    Smith       js@123.com

谢谢

我目前的查询看起来像这样

select C2.UREPEMAIL, 'NULL' as Source, CS.TITLE, CS.CONTACT, C1.COMPANY, C2.UGMNAME as Vendor, CS1.Contsupref, 'NULL', 
CS.PHONE, CS.EXT, CS.FAX, 'NULL', 'NULL', 'NULL' Skype, 'NULL', CS.TITLE, 'NULL', 'Department', 'NULL', 'NULL', 'Pref of Con',
'NULL', CS.ADDRESS1 + ' ' + CS. ADDRESS2, CS.CITY, CS. STATE, CS.ZIP, CS.COUNTRY, CS.ADDRESS3, 'NULL', 'NULL', 'NULL', 'NULL',
 'NULL'  
from CONTSUPP CS         
INNER JOIN CONTSUPP CS1
ON CS.CONTACT = CS1.ADDRESS2
INNER JOIN CONTACT1 C1
ON C1.ACCOUNTNO = CS.ACCOUNTNO
INNER JOIN CONTACT2 C2
ON C2.ACCOUNTNO = CS.ACCOUNTNO 

这个?

SELECT  a.Name,
        a.Lastname,
        b.Address
FROM    YourTable a
        JOIN YourTable b
            ON a.Name = b.U_Name

您的样本数据大小非常有限,因此我添加了一些将显示失败的数据( 当名称<> u_name时 ),因为您需要找到一些可靠的方法将记录的第一部分连接到记录的第二部分。 如果不存在这种关系,则可以识别出来(由于u_name为空)。

SQL小提琴

CREATE TABLE Table1
    (  `Name`    varchar(20)
     , `Lastname` varchar(20)
     , `address` varchar(100)
     , `U_Name`  varchar(20)
    )
;

INSERT INTO Table1
    (`Name`, `Lastname`, `address`, `U_Name`)
VALUES
    ('John', 'Smith', '123 N Av', NULL)
  , ('E-mail', NULL, 'js@123.com', 'John')
  , ('Barney', 'Rubble', '123 N Av', NULL)
  , ('E-mail', NULL, 'br@123.com', 'brubble')
;

查询1

select 
  t1.Name, t2.U_Name, t1.Lastname, t1.address, t2.address as email
from table1 t1
left join table1 t2 on t1.name = t2.u_name and t2.name = 'E-mail'
where t1.name <> 'E-mail'
order by t1.name

结果

|   Name | U_Name | Lastname |  address |      email |
|--------|--------|----------|----------|------------|
| Barney | (null) |   Rubble | 123 N Av |     (null) |
|   John |   John |    Smith | 123 N Av | js@123.com |

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM