Sozusagen als krönender Abschluss meines Exkurses in die Statistik, hier ein Skript zur Berechnung des hyperbolischen Tangens:
DECLARE @sinhyp FLOAT
DECLARE @coshyp FLOAT
SELECT @sinhyp=0.5, @coshyp=0.5
SELECT
((POWER(EXP(1),@sinhyp) - POWER(EXP(1),-@sinhyp) )/2) /
(( POWER(EXP(1),@coshyp) + POWER(EXP(1),-@coshyp) )/2)
-----------------------------------------------------
0.46211715726000974
(1 row(s) affected)
Auch dies ist eine Adaption aus Excel. Diesmal die Funktion TANHYP(). Da dies nun ziemlich wild aussieht, empfiehlt sich hier der Einsatz der UDF-Variante, die dann komplett so aussieht:
CREATE FUNCTION dbo.hypsin (@sinhyp FLOAT)
RETURNS FLOAT
AS
BEGIN
RETURN (POWER(EXP(1),@sinhyp) - POWER(EXP(1),-@sinhyp) )/2
END
GO
CREATE FUNCTION dbo.hypcos (@coshyp FLOAT)
RETURNS FLOAT
AS
BEGIN
RETURN ( POWER(EXP(1),@coshyp) + POWER(EXP(1),-@coshyp) )/2
END
GO
CREATE FUNCTION dbo.hyptan (@tanhyp FLOAT)
RETURNS FLOAT
AS
BEGIN
RETURN (dbo.hypsin(@tanhyp)/dbo.hypcos(@tanhyp))
END
GO
SELECT dbo.hyptan(0.5)
DROP FUNCTION dbo.hypsin
DROP FUNCTION dbo.hypcos
DROP FUNCTION dbo.hyptan
-----------------------------------------------------
0.46211715726000974
(1 row(s) affected)
Dieser Beitrag zeigte, wie man mit Integer Operationen die Anzahl der Tage eines Monats ermitteln kann. SQL Server MVP Steve Kass hat den folgenden Trick in den englischen Newsgroups gepostet:
Unter dem Oberbegriff Datenintegrität versteht man die Konsistenz, Fehlerlosigkeit und Richtigkeit der in einer Datenbank gespeicherten Daten. Dabei geht es nicht um physikalische Sicherheit, Fehlertoleranz oder Datensicherungen. Bildlich gesprochen geht es bei Datenintegrität darum, den Müll aus einer Datenbank fernzuhalten. Man unterscheidet vier Arten von Datenintegrität
Original von Erland Sommarskog; deutsche Übersetzung von Frank Kalis
Wenn Sie die verschiedenen Newsgroups über Microsoft SQL Server verfolgen, wird Ihnen auffallen, dass häufig Fragen gestellt werden, warum die Statements:
SELECT * FROM @tablename
SELECT @colname FROM tbl
SELECT * FROM tbl WHERE x IN (@list)
nicht funktionieren.
Zuerst stellt sich aber die Frage, warum man so etwas machen möchte. Zu den wohl am häufigsten genannten Gründe zählt:
Oftmals fragt man sich, wann DECIMAL und wann FLOAT verwendet werden soll; bzw. ob und wenn Ja, wofür FLOAT überhaupt verwendet werden soll. Eine allgemeingültige verbindliche Antwort hierauf gibt es wahrscheinlich nicht. Vielmehr hängt dies von den jeweiligen Anforderungen ab. Festhalten lässt sich aber, daß überall dort, wo ein hoher Anspruch an Genauigkeit bei Zahlen und Berechnungen herrscht, DECIMAL verwendet werden sollte. Genaugenommen fällt mir jetzt nur ein Gebiet ein, wo FLOAT eher angebracht scheint: Astronomie, bzw, überall dort, wo mit extrem grossen oder kleinen Zahlen gerechnet wird.