Tag: "entwicklung"

Median berechnen

Posted on Jul 13, 2004 von in SQL Server

Es gibt anscheinend unterschiedliche Meinungen über die Berechnung des Median. Zum einen gibt es den 'financial' Median, der das arithmetische Mittel der beiden mittleren Werte ist, zum anderen den 'statistischen' Median, der der niedrigere (bzw. bei Gleichheit der Werte) der erste der Werte ist. In Büchern über T-SQL findet man die komplexesten Statements zur Berechnung des Median, dabei ist dieser sehr einfach mit Hilfe von TOP n PERCENT zu berechnen. Hier ist ein Beispiel zur Berechnung des 'financial' Medians:

Ganze Geschichte »

VBScript split Funktion in T-SQL

Posted on Jul 12, 2004 von in SQL Server

Diese Website hat Beispiele für SQL2K und SQL7:
www.users.drew.edu/skass/sql (Homepage von SQL Server MVP Steve Kass)

Ganze Geschichte »

Zeit aus einer DATETIME Spalte entfernen

Posted on Jul 12, 2004 von in SQL Server

Der Datetime Datentyp, so wie er im SQL Server 2000 und früher implementiert ist, enthält immer einen Zeitpart. Somit ist der Titel dieses Beitrages evtl. etwas irreführend. Dieser Zeitanteil kann jedoch auf Mitternacht gesetzt werden, somit faktisch = 0, und wirkt sich damit nicht weiter störend aus.
Hier sind einige Beispiel, wie dies erreicht werden kann:

Ganze Geschichte »

String Truncation

Posted on Jul 12, 2004 von in SQL Server

SQL Server konvertiert Daten (und schneidet diese notfalls auch ab) wo dies angebracht erscheint. Wenn zu einem VARCHAR Wert konvertiert wird explizit oder implizit) und dieser zu gross für die Spalte ist, wird SQL Server * einfügen.
Weitere Informationen stehen in der Onlinehilfe unter CAST und CONVERT.
Danke an David Burrows für diesen Tip.

CREATE TABLE #test
(
col1 VARCHAR(2)
)
GO
INSERT INTO #test(col1) VALUES('15')
INSERT INTO #test(col1) VALUES(15)
INSERT INTO #test(col1) VALUES('157')
INSERT INTO #test(col1) VALUES(157)

SELECT
*
FROM
#test
DROP TABLE #test



(1 row(s) affected)


(1 row(s) affected)

Server: Nachr.-Nr. 8152, Schweregrad 16, Status 9, Zeile 3
Zeichenfolgen- oder Binärdaten werden abgeschnitten.
Die Anweisung wurde beendet.

(1 row(s) affected)

col1
----
15
15
*

(3 row(s) affected)

Inline Split mittels CHARINDEX

Posted on Jul 12, 2004 von in SQL Server

Diese Frage ist auch ein Kandidat für die "Häufigste Frage". Dabei kann man sehr häufig die abstrusesten Antworten beobachten. Natürlich kann man dieses Problem mit Hilfe eines Cursors lösen. Stellt sich nur nachher die Frage, wie man das Problem des Cursors los wird.

Ganze Geschichte »

Nicht-Unicode Spalten ermitteln

Posted on Jul 12, 2004 von in SQL Server
SELECT
OBJECT_NAME(Id) as [Table]
, name as [Column]
, TYPE_NAME(xusertype) as Type
FROM SysColumns
WHERE TYPE_NAME(xusertype)
IN ('varchar','char')
AND ID IN
(SELECT ID
FROM SysObjects
WHERE xtype = 'U')
ORDER BY OBJECT_NAME(Id), Name

Die Ergebnismenge wird hier nicht wiedergegeben, da sie in der Regel sehr umfangreich ist. Ändert man

 WHERE xtype = 'U') 

in

 WHERE xtype = 'P') 

erhält man das Ergebnis für Gespeicherte Prozeduren.