Tag: "query"

Nichtnumerische Zeichen aus einem String entfernen

Posted on Nov 26, 2004 von in SQL Server

Das Problem hat wahrscheinlich jeder schon einmal gehabt. Man stellt Importanforderungen auf, und die Anwender kümmern sich nicht darum und liefern anstelle von sauber getrennten Strings und Zahlen einen bunten Mischmasch aus beidem.

Ganze Geschichte »

n Datensätze pro Gruppierung anzeigen

Posted on Nov 26, 2004 von in SQL Server

Zugegeben ist das Subjekt nicht sehr treffend, aber im Moment fällt mir kein Besseres ein.

Gestern stellte jemand auf SQL Server Central.com die Frage, wie man zu jedem Namen mehr als ein Datum anzeigen kann. Genauer gesagt, die beiden aktuellsten Daten. Diese Frage kann man leicht auf die Northwind Beispieldatenbank übertragen: Zeige mir zu jedem Kunden die beiden letzten Bestelldaten ein.

Ganze Geschichte »

Unterschiede zwischen ISNULL und COALESCE

Posted on Nov 2, 2004 von in SQL Server

Es gibt keine Unterschiede zwischen ISNULL und COALESCE. Diese Meinung kann man recht häufig in Online Communities lesen. Der einzige Unterschied zwischen beiden ist, daß ISNULL SQL Server spezifisch ist, während COALESCE ANSI-SQL Standard ist. Auch dies kann man recht häufig lesen. Beide beschäftigen sich mit der Umwandlung von NULL und damit fehlenden Informationen. Wozu also einen eigenen Beitrag?

Ganze Geschichte »

In welcher Reihenfolge gibt SELECT * die Spalten zurück

Posted on Okt 26, 2004 von in SQL Server

Vielleicht hat sich der Eine oder Andere schon mal gefragt, wieso und warum SQL Server bei einem SELECT * Statement die Spalte in der Art und Weise zurückgibt, in der es geschieht. Zum Beispiel:

CREATE TABLE #test
(
col1 CHAR
, col2 INT
, col3 FLOAT
, col4 VARCHAR
)
GO
INSERT INTO #test VALUES('a',1,0.9,'A')
SELECT * FROM #test

col1 col2 col3 col4
---- ----------- ----------------------------------------------------- ----
a 1 0.90000000000000002 A

Die Reihenfolge der Spalten entspricht bei einem SELECT * immer stets der Reihenfolge, in der sie beim CREATE TABLE Statement angegeben wurden. Das heißt, im Grunde werden die Spalten in aufsteigender Reihenfolge der colid in der Tabelle syscolumns zurückgegeben. Hier ist ein Ausschnitt aus

EXEC sp_help #test

Column_name
------------
col1
col2
col3
col4

Und ist der entsprechende Ausschnitt aus syscolumns:

SELECT
CAST(name AS CHAR(30)) AS [name]
, colid
FROM
syscolumns
WHERE
id=OBJECT_ID('#test')

name colid
------------------------------ ------
col1 1
col2 2
col3 3
col4 4

Erwähnt werden sollte auch, daß ein SELECT * Statement nichts in Produktionscode zu suchen hat, IMHO. Und das die physikalische Speicherung der Storage Engine wiederum eine komplett andere ist.

Spaß mit Zahlen in Transact-SQL Abfragen

Posted on Sep 25, 2004 von in SQL Server

Original von Narayana Vyas Kondreddi; deutsche Übersetzung von Frank Kalis

Neulich stellte jemand in den öffentlichen Microsoft Newsgroups die Frage, wie man Zeichen innerhalb eines Strings sortiert? Zum Beispiel enthielt der String 'CBA' und er wollte nun die Zeichen innerhalb des String sortieren, um daraus 'ABC' zu machen. Anstelle nun die prozedurale Lösung zu verwenden, habe ich versucht, rein aus Spaß, dies mit einem relationalen Ansatz (T-SQL spezifisch) zu lösen. In diesem Artikel zeige ich Ihnen, wie Sie eine Zahlentabelle verwenden können, um diese innovative Art von Abfragen zu schreiben.

Ganze Geschichte »

Spaltenwerte als kommaseparierte Liste zurückgeben

Posted on Sep 21, 2004 von in SQL Server

Wie so oft mag man sich fragen, ob dies eher die Aufgabe des Clients als die des Server ist, aber da man häufig derartige Fragestellungen beobachten kann, hier an dieser Stelle vielleicht ein paar Lösungsansätze zu folgendem Problem:

Ganze Geschichte »

Muss man T-SQL Variablen explizit aufräumen

Posted on Sep 7, 2004 von in SQL Server

Nun, so etwas wie Set < variable > = Nothing oder ein Äquivalent in einer anderen Programmiersprache gibt es in T-SQL nicht. T-SQL Variablen sind nur lokal im Batch oder in einer Gespeicherten Prozedur gültig, in der sie definiert wurden. Wird der Batch oder die Prozedur beendet, existiert auch die Variable nicht mehr. Beispiel (Query Analyzer):

Ganze Geschichte »

IP-Adressen sortieren

Posted on Sep 6, 2004 von in SQL Server

Nun, grundsätzlich würde ich wahrscheinlich eher zu einem anderen Datentyp als VARCHAR tendieren, um IP Adressen zu speichern, aber dennoch fand ich diese "Koproduktion" der beiden SQL Server MVP's Steve Kass und Itzik Ben-Gan in der englischen Newsgroup sehr interessant. Folgender Lösungsansatz kam von Steve Kass

Ganze Geschichte »