forked from AkshayAgarwal007/Jekyll-Mono
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2008-04-23-inserire-dei-padding-nei-campi-di-testo.html
19 lines (14 loc) · 2.83 KB
/
2008-04-23-inserire-dei-padding-nei-campi-di-testo.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
---
layout: post
title: Inserire dei padding nei campi di testo
date: '2008-04-23T08:34:00.000+02:00'
author: Luca Ferrari
tags:
- postgresql
modified_time: '2008-04-23T09:57:14.775+02:00'
blogger_id: tag:blogger.com,1999:blog-1836481905487384887.post-1712195303413318637
blogger_orig_url: http://fluca1978.blogspot.com/2008/04/inserire-dei-padding-nei-campi-di-testo.html
permalink: /:year/:month/:day/:title.html
---
<h1>~</h1>
PostgreSQL mette a disposizione una funzione molto comoda, <span style="font-style: italic;">lpad</span>, che consente data una stringa e una lunghezza cui questa deve essere formattata, di tagliare (o allungare) la stringa inserendo un eventuale <span style="font-style: italic;">padding</span> specificato. Questo è molto utile quando si vuole uniformare la lunghezza di alcuni codici che sono stati inseriti in modo eterogeneo. Ad esempio, avendo una serie di codici come:<br /><br /><span style="font-style: italic;">cod01<br />08cod02<br /><br /></span>e volendo uniformare il tutto affinché i due codici abbiano il prefisso 08 e siano della stessa lunghezza, è possibile utilizzare<span style="font-style: italic;"><span style="font-style: italic;"> lpad</span></span> specificando come padding '08' e la lunghezza di 7 caratteri:<br /><br /><span style="font-style: italic;">lpad('cod01', 7, '08') = 08cod01</span><br /><span style="font-style: italic;"><span style="font-style: italic;"></span><br /><br /></span>A questo punto, ipotizzando di avere una tabella<span style="font-style: italic;"> padding </span>che contiene la lunghezza con cui uniformare i codici, e quindi di voler prendere da questa tabella la lunghezza dei codici si può usare un semplice comando (da utilizzare eventualmente in transazione). Ad esempio avendo il padding e la tabella delle stringhe da modificare come segue:<br /><br /><pre>luca=# select * from padding;<br />tipo | lunghezza<br />------+-----------<br /> 1 | 10<br /> 2 | 20<br /> 3 | 30<br />(3 rows)<br /><br />luca=# select * from stringhe;<br />stringa_src | stringa_dest<br />-------------+--------------<br />Luca |<br />ciao |<br />(2 rows)<br /><br /><br /></pre>è possibile dare il seguente update per inserire il padding nelle stringhe:<br /><br /><pre>luca=# update stringhe set stringa_dest =<br />lpad( stringa_src, (select lunghezza from padding where tipo=2), '0')<br />where stringa_src = 'ciao';<br /><br />UPDATE 1<br />luca=# select * from stringhe;<br />stringa_src | stringa_dest<br />-------------+----------------------<br />Luca |<br />ciao | 0000000000000000ciao<br />(2 rows)<br /></pre><br />Come si può notare è stato inserito un padding di 10 caratteri 0 (10 è stato selezionato dal tipo di padding 1) nella stringa <span style="font-style: italic;">ciao</span>.<br /><br /><br /><br /><span style="font-style: italic;"></span>