Archiv für: "August 2004"

Summenwert einer Reihe

Dies ist ein beliebtes Beispiel für Informatikstudenten im Anfangsstadium, um die Auswirkungen effizienter Algorithmen zu demonstrieren. Also auch hier nicht unbedingt etwas, was man zwingend in einer Datenbank machen müßte, das sich aber durchaus… mehr »

Binärzahl in Dezimalzahl umwandeln

Normalerweise würde man solche Fragestellungen. welcher Dezimalzahl nun 1011001 entspricht, damit beantworten, in dem man auf den Client verweist. Was aber, wenn man einfach wissen will, wie so etwas in T-SQL aussehen könnte? Ob man es dann später… mehr »

Unterschiede zwischen MONEY und DECIMAL

SQL Server MVP Steve Kass hat dieses Beispiel in den englischen Newsgroups gepostet. Es zeigt, daß der Einsatz der Datentypen zur Speicherung monetärer Daten sorgfältig durchdacht sein sollte. Man sollte stets bedenken, welche Operationen mit diesen… mehr »

Determinismus von CHARINDEX und PATINDEX

In BOL werden CHARINDEX() und PATINDEX() als nichtdeterministische Stringfunktionen aufgelistet. Warum eigentlich? Man sollte meinen, das ceteris paribus auch bei diesen Funktionen stets ein identisches Ergebnis herauskommt. Richtig, und gleichzeitig… mehr »

Daten aus Excel abfragen

In fast allen Online Communities sieht man solche Fragen mit schöner Regelmässigkeit auftauchen. Die vielleicht einfachste Methode, diese Daten abzufragen, besteht in der Verwendung von OPENROWSET: mehr »

Zahl rechts-oder linksbündig mit 0 formatieren

Die Präsentation von Informationen aus der Datenbank ist imho eher Sache des Clients als die des Servers. Solche Aufgaben gehören zum Handswerkzeug jedes Front-End und sind dort schnell und einfach erledigt. Falls jedoch, aus welchen Gründen auch immer,… mehr »

N-te Wurzel einer Zahl

Tja, wieder so ein Beispiel, dass man mal in der Schule gelernt hat, aber immer genau dann vergisst, wenn man es braucht. DECLARE @My1 FLOAT DECLARE @My2 FLOAT SELECT @My1 = 16, @My2 = 4 SELECT POWER(@My1, 1/@My2)… mehr »

Kleinste gemeinsame Vielfache zweier Zahlen

CREATE FUNCTION dbo.kgv(@zahl1 int, @zahl2 int ) RETURNS INT AS BEGIN RETURN (@zahl1 * @zahl2) / dbo.ggt(@zahl1, @zahl2) END GO SELECT dbo.kgv(24,36) DROP FUNCTION dbo.kgv ----------- 72 (1 row(s) affected) Der Vollständigkeit… mehr »

Größte gemeinsame Teiler zweier Zahlen

Dies ist die Adaption der Excel Funktion GGT(). CREATE FUNCTION dbo.ggt(@zahl1 int, @zahl2 int) RETURNS INT AS BEGIN DECLARE @zahl3 INT SET @zahl3=1 WHILE (@zahl3 <> 0) BEGIN SET @zahl3=@zahl1 % @zahl2 SET @zahl1=@zahl2… mehr »

Dynamisches SQL innerhalb einer Funktion

Dynamisches SQL kann nicht innerhalb einer Funktion ausgeführt werden. Genausowenig können Stored Procedures aufgerufen werden. Der einzige Workaround hier ist, eine andere Logik anzuwenden, um um den dynamischen Teil herumzukommen. So führt z.B.… mehr »

Sequentielle Nummerierung eines Resultsets

Eine beliebte Frage mit unzähligen Antworten. Meine Lieblingsantwort darauf ist, dies in der Präsentationsschicht seiner Anwendung zu machen. IMHO ist dies Aufgabe des Clients, nicht des Servers. Wenn es aber unbedingt in T-SQL gemacht werden soll, kann… mehr »