如何在 SQL Server 2008 查询的结果标题中显示表名

How can I display tablenames in resultheader of SQL Server 2008 query

我正在分析一个大型查询,该查询在不同的 table 上有很多联接,所有联接都在联接中获得别名。一些 table 以不同的别名连接了两次。

例如 answer 中的代码:

SELECT *
FROM Blank b
INNER JOIN Ticket t ON b.BlankCode = t.Blank_BlankCode
INNER JOIN MCO_Blank mb ON b.BlankCode = mb.Blank_BlankCode
INNER JOIN Purchase p1 ON  t.PurchaseID = p1.PurchaseID
INNER JOIN Purchase p2 ON mb.PurchaseID = p2.PurchaseID
INNER JOIN Payment pa1 ON t.PurchaseID = pa1.PurchaseID
INNER JOIN Payment pa2 ON mc.PurchaseID = pa2.PurchaseID
WHERE pa1.Status = "Paid";

我希望我的结果网格在列中显示 table 别名。除了为 select 中的每一列使用别名之外,还有其他可能的方式吗?

所以我的列标题应该是这样的:

b.BlankTypeCode|b.BlankCode|pa1.Amount|pa1.Type|p1.PurchaseDate| pa2.DatePaid

而不是

BlankTypeCode|BlankCode|Amount|Type|PurchaseDate|DatePaid

使用这个

SELECT b.BlankTypeCode AS [b.BlankTypeCode]
, b.BlankCode AS [b.BlankCode]
, pa1.Amount AS [pa1.Amount]
, pa1.Type AS [pa1.Type]
, p1.PurchaseDate AS [p1.PurchaseDate]
, pa2.DatePaid AS [pa2.DatePaid]

FROM Blank b
INNER JOIN Ticket t
ON b.BlankCode = t.Blank_BlankCode
INNER JOIN MCO_Blank mb
ON b.BlankCode = mb.Blank_BlankCode
INNER JOIN Purchase p1
ON  t.PurchaseID = p1.PurchaseID
INNER JOIN Purchase p2
ON mb.PurchaseID = p2.PurchaseID
INNER JOIN Payment pa1
ON t.PurchaseID = pa1.PurchaseID
INNER JOIN Payment pa2
ON mc.PurchaseID = pa2.PurchaseID
WHERE pa1.Status = "Paid";

It is not recommended using blank spaces or Dot(.) or any other special charecters is column names

但如果您需要,您可以这样更改它:

像这样更改代码:

    SELECT 
b.BlankTypeCode as "b.BlankTypeCode"
    , b.BlankCode as "b.BlankCode "
    , pa1.Amount as "pa1.Amount"
    , pa1.Type as "pa1.Type"
    , p1.PurchaseDate as "p1.PurchaseDate"
    , pa2.DatePaid as "pa2.DatePaid"

    FROM Blank b
    INNER JOIN Ticket t
    ON b.BlankCode = t.Blank_BlankCode
    INNER JOIN MCO_Blank mb
    ON b.BlankCode = mb.Blank_BlankCode
    INNER JOIN Purchase p1
    ON  t.PurchaseID = p1.PurchaseID
    INNER JOIN Purchase p2
    ON mb.PurchaseID = p2.PurchaseID
    INNER JOIN Payment pa1
    ON t.PurchaseID = pa1.PurchaseID
    INNER JOIN Payment pa2
    ON mc.PurchaseID = pa2.PurchaseID
    WHERE pa1.Status = "Paid";

您必须为 select 查询中的每一列添加别名,但有一种稍微更快的方法。将鼠标光标放在 b.BlankCode 之前,然后 按住 Alt 键 ,单击并拖动到 select 到 pa2.DatePaid 之后的几个空格.

Ctrl + C

现在在b.BlankCode后输入几个空格(确保你已经过了最突出位的垂直列,然后按Ctrl + V

这是为您的列创建别名的快速方法,您也可以通过这种方式在多个列中键入内容。