如何右对齐列

问题描述 投票:0回答:4

我想对齐表格中的一列。在本例中为“标题”

mysql> SELECT Titel, KuenstlerName from Bild;
+--------------------------+---------------+
| Title                    |         Artist|
+--------------------------+---------------+
| Drei Musikanten          | Picasso       |
| Buveuse assoupie         | Picasso       |
| Die Flöte des Pan        | Picasso       |
| Paolo als Harlekin       | Picasso       |
| Die Umarmung             | Picasso       |
| Sitzende Frau            | Picasso       |
| Sternennacht             | van Gogh      |
| Der Park                 | Klingt        |
| Liegender Hund im Schnee | Marc          |
| Hauptweg und Nebenwege   | Klee          |
| Jungfrau im Baum         | Klee          |
| Das gelbe Haus           | Klee          |
+--------------------------+---------------+

是否可以将左列向右对齐,如下所示:

+--------------------------+---------------+
| Title                    | Artist        |
+--------------------------+---------------+
|           Drei Musikanten| Picasso       |
|          Buveuse assoupie| Picasso       |
|         Die Flöte des Pan| Picasso       |
+--------------------------+---------------+

感谢您的帮助!

mysql sql select format tabular
4个回答
10
投票

如果你的

Title
长度是150,那么像这样查询

 SELECT LPAD(Titel,150,' ') as Titel , KuenstlerName from Bild;

检查手册了解

LPAD
功能。


4
投票

如果

Titel
是 100 个字符,则执行此操作

SELECT
    LPAD(Titel, 100, ' '),
    ...

SELECT
    RIGHT(CONCAT(REPEAT(' ', 100), Titel), 100),
    ...

1
投票

我这样解决了任务:

SELECT LPAD(Titel,(SELECT MAX(LENGTH(Titel)) FROM Bild),' ') AS Titel, CONCAT(Kuenstler.Vorname,' ',Kuenstler.Name) AS Kuenstler 
FROM Kuenstler 
INNER JOIN Bild ON Bild.Kuenstler = Kuenstler.KID;

0
投票

我发现最简单的方法是使用“CAST”功能。假设我的选择是: SELECT AMTDUE FROM INVOICES;并返回左对齐的值字符串。 将语句更改为 SELECT CAST(AMTDUE AS DECIMAL(10,2)) AS AmtDue FROM INVOICES;并运行它,现在我有一个右对齐的数字列。

© www.soinside.com 2019 - 2024. All rights reserved.