如何对齐列右调整
Posted
技术标签:
【中文标题】如何对齐列右调整【英文标题】:How to align a column right-adjusted 【发布时间】:2014-07-02 07:40:29 【问题描述】:我想对齐表格中的一列。在本例中为“标题”
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 |
+--------------------------+---------------+
感谢您的帮助!
【问题讨论】:
sql 是一个数据库。它处理数据,而不是处理数据的显示。是的,您可以如下所示填充您的字符串,但这会更改数据(添加空格)而不是显示。它也只适用于固定字体的场景。 【参考方案1】:如果您的Title
长度为 150,则像这样查询
SELECT LPAD(Titel,150,' ') as Titel , KuenstlerName from Bild;
检查Manual 以获得LPAD
功能。
【讨论】:
别担心,您接受对其他用户更重要,以供将来参考。【参考方案2】:如果Titel
是 100 个字符,则执行此操作
SELECT
LPAD(Titel, 100, ' '),
...
或
SELECT
RIGHT(CONCAT(REPEAT(' ', 100), Titel), 100),
...
【讨论】:
第二个选项适用于 iSeries DB2 上的 SQL。我需要的不是正确调整字段,而是输入变量进入查询。工作得很好。允许优化器使用正确的索引。【参考方案3】:我这样解决了这个任务:
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;
【讨论】:
以上是关于如何对齐列右调整的主要内容,如果未能解决你的问题,请参考以下文章
word2010插入公式以后无法调整公式左对齐、居中、右对齐等等,如何解决?