I det ständigt återkommande arbetet med att hjälpa våra kunder att dra ut verksamhetsinformation ur sina system för vidare användning stöter vi för det mesta på SQL Server- eller Oracleinstallationer. Ibland tampas vi dock med mer ovanliga grejer, som i mitt senaste uppdrag, där jag huggit tänderna i en databashanterare baserad på öppen källkod: PostgreSQL.

Är man SQL-kunnig är det inget större problem att prata med en PostgreSQL-databas. Det klientverktyg man som användare hänvisas till heter PGAdmin och är givetvis gratis att ladda ner. Det fungerar OK, men är inte i närheten av t ex Management Studio (SQL Server) eller TOAD (Oracle).

När man arbetat ett tag inser man att det i PostgresSQL faktiskt finns ett antal operationer som är klart förenklade och därmed mer lättanvända jämfört med T-SQL och PL/SQL. En orsak till det är säkerligen den stora skara av engagerade användare som ständigt skapar och delar med sig av user extensions.

Här nedan bjuder jag på fyra exempel där PostgreSQL briljerar med sin enkelhet: 

Utifrån dagens datum hitta första dagen i datumets år (1 jan)
TSQL:                                               SELECT DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)
POSTGRESQL:                              SELECT date_trunc(‘YEAR’,now())

Välja det värde av två kolumner i en tabell som är högst
TSQL:                                               SELECT CASE WHEN Col1 >=Col2 THEN Col1 ELSE Col2 END
POSTGRSSQL:                              SELECT GREATEST(Col1, Col2)

Bestämma datatyp/Konvertera
TSQL:                                               SELECT CONVERT(date,PurchaseDate)
POSTGRESQL:                              SELECT PurchaseDate::date

Joina (skapa relation mellan) två tabeller där den/de kolumner som används i joinen har samma namn
TSQL:                                               FROM Table1 INNER JOIN Table2 ON Table1.Prodnr=Table2.Prodnr
POSTGRESQL:                              FROM Table1 INNER JOIN Table2 using (Prodnr)

KONTAKTA OSS

Vänligen skicka ett mail så återkommer vi så fort vi kan. Du kan även nå den person du vill ha tag på via förnamn.efternamn@attollo.se

Skickar

©2017 Attollo AB - Kungsgatan 50 - 111 35 Stockholm

Log in with your credentials

Forgot your details?