我想对齐表格中的一列。在本例中为“标题”
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 |
+--------------------------+---------------+
感谢您的帮助!
如果你的
Title
长度是150,那么像这样查询
SELECT LPAD(Titel,150,' ') as Titel , KuenstlerName from Bild;
检查手册了解
LPAD
功能。
如果
Titel
是 100 个字符,则执行此操作
SELECT
LPAD(Titel, 100, ' '),
...
或
SELECT
RIGHT(CONCAT(REPEAT(' ', 100), Titel), 100),
...
我这样解决了任务:
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;
我发现最简单的方法是使用“CAST”功能。假设我的选择是: SELECT AMTDUE FROM INVOICES;并返回左对齐的值字符串。 将语句更改为 SELECT CAST(AMTDUE AS DECIMAL(10,2)) AS AmtDue FROM INVOICES;并运行它,现在我有一个右对齐的数字列。