Jak pomocí SQL spočítat počet normostran v textových polích

29. 2. 2016, Vladimír Klaus, přečteno 856x

MS Access
SQL
SQL Server

Předpokládejme, že máte v databázi nějaké texty, u kterých potřebujete stanovit počet normostran, abyste mohli dle tohoto počtu zaplatit překladateli, korektorovi apod. Tak nejprve, co to je normostrana - zpravidla to je 1800 znaků včetně mezer.

Pokud máte texty v poli typu nvarchar, pak je to jednoduché, protože zabere funkce LEN(), tedy třeba:

SELECT SUM(LEN(TextPlain))/1800 as NS FROM Clanky

Pokud ale používáte starší (a v dnešní době již nedoporučovaný) typ ntext, pak musíte použít funkci DataLength(). A protože je ntext v Unicodu (zabírá 2 bajty na znak) je nutné hodnotu vydělit 2.

SELECT SUM(DataLength(TextPlain)/2)/1800 as NS FROM Clanky

Není to žádná věda, ale je dobré vždy vědět s jakým typem pracujete, protože to může (třeba právě při vyúčtování) docela zásadně zahýbat s výsledkem.