Pivottabellen in SQL Server

Frage:
In Access können
mittels einer Pivottabelle Zeileninformationen als Spalteninformationen dargestellt werden.
Wie kann dies mit SQL Server umgesetzt werden?

Lösung:
Die Darstellung von Zeileninformationen in Spalten wird mit CASE erreicht.
Mehr dazu gibt es in den Online-Hilfe unter CASE sowie unter dem Stichwort Kreuztabellenberichte.

/* übernommen aus der Original sqlfaq.de */

InStr

Frage:
Gibt es in T-SQL ein Pendant zu InStr, um bestimmte Zeichen innerhalb einer Zeichenfolge zu suchen?

Lösung:
Die Funktionen charindex und patindex geben die Anfangsposition eines angegebenen Musters zurück.
Dabei kann patindex im Gegensatz zu charindex Platzhalterzeichen verwenden.

Ein Beispiel:
SELECT CHARINDEX(’suchbegriff‘, spaltenname)

oder
SELECT PATINDEX(‚%suchbegriff%‘, spaltenname)

/* übernommen aus der Original sqlfaq.de */

Autowert

Frage:
Access bietet die Funktionalität des Autowerts an, durch die in Tabellen fortlaufendene Schlüsselwerte generiert werden.
Gibt es diese Funktion auch im SQL Server?

Lösung:
Im SQL Server wird der Autowert durch die Eigenschaft IDENTITY erstellt.
Diese Eigenschaft kann beim Tabellenentwurf für eine Spalte vom Typ Integer oder BigInt mitsamt Startwert und Schrittweite definiert werden.
Im Unterschied zu Access wird aber der neue Schlüsselwert nicht vor, sondern erst nach dem Speichern des neuen Datensatzes ermittelt.

/* übernommen aus der Original sqlfaq.de */

Mid

Frage:
Gibt es in T-SQL ein Pendant zu Mid, um einen bestimmten Bereich von Zeichen in einer Zeichenfolge zu ermitteln?

Lösung:
Der T-SQL-Befehl SUBSTRING(wert, start, length) liefert den über start und length angegebenen Bereich einer Zeichenfolge.

/* übernommen aus der Original sqlfaq.de */

Trim

Frage:
Gibt es in T-SQL ein Pendant zu Trim, um Leerzeichen aus einer Zeichenfolge zu entfernen?

Lösung:
Trim gibt es nicht direkt, dafür aber Ltrim und Rtrim.
Ltrim entfernt die Leerstellen am Anfang und Rtrim am Ende einer
Zeichenfolge.

/* übernommen aus der Original sqlfaq.de */

Datenänderung bei verknüpften Tabellen

Frage:
SQL Server-Tabellen werden in Access eingebunden und dort wie Tabellen verwaltet. Bei einigen Sichten lassen sich die Daten wie in einer Tabelle ändern. Bei einigen aber wird die Änderung mit der Meldung verweigert, es sei keine eindeutige Tabelle definiert.

Lösung:
Die Daten einer Sicht lassen sich nur ändern, wenn die Sicht nicht auf einer SQL-Anweisung basiert, in der mehrere Tabellen per JOIN miteinander verbunden sind.
Mit einer Sicht ist eine Aktualisierung von Daten in mehreren Tabellen zwar prinzipiell möglich; die meisten Datenzugriffsmethoden aber verhindern diese Möglichkeit.
Um die Daten dennoch über die Sicht ändern zu können, ist in der Eigenschaft Eindeutige Tabelle des entsprechenden Formulars die Tabelle anzugeben, deren Daten letztendlich geändert werden sollen.

/* übernommen aus der Original sqlfaq.de */

Wildcards (* und ?)

Frage:
Access bietet als Wildcards das Sternchen (*) für eine beliebige Anzahl von Zeichen und ein Fragezeichen (?) für ein einzelnes Zeichen an.
Welche Wildcards werden in SQL Server benutzt?

Lösung:
Für die beliebige Anzahl wird in SQL Server das Prozentzeichen (%) und für einzelne Zeichen der Unterstrich (_) verwendet.

/* übernommen aus der Original sqlfaq.de */