New SQL Where for Search
Zuletzt geändert: 01.10.2026 13:59

Übersicht

New-SqlWhereForSearch #

ÜBERSICHT #

Baut die SQL-Bedingung einer Suche über mehrere Spalten, mit und ohne Umlaut (“Völk” findet VOELK).

SYNTAX #

New-SqlWhereForSearch [[-Text] <string>] [-Column] <string[]> [[-Mode] <string>]
    [<CommonParameters>]

BESCHREIBUNG #

Jede Schreibweise aus Get-SearchTextVariant wird gegen jede Spalte geprüft, alles mit OR verbunden und geklammert:

(a.Match LIKE ? OR a.Name1 LIKE ? OR a.Match LIKE ? OR a.Name1 LIKE ?)

Die Werte kommen als Parameter zurück, nie in den SQL-Text; die Platzhalter von LIKE (%, _, [) im Suchbegriff werden maskiert. Die Spaltenausdrücke kommen vom Aufrufer und müssen fest im Code stehen, nie aus einer Anfrage.

Ohne Suchbegriff ist Sql leer und Parameters ein leeres Feld - der Aufrufer hängt dann nichts an.

PARAMETER #

-Text #

Type: string
Default: ''

Der Suchbegriff.

-Column #

Type: string[]

Die Spaltenausdrücke, z.B. ‘a.Match’, ‘a.Name1’, ‘[Ort]’.

-Mode #

Type: string
Default: 'Contains'

Contains (Vorgabe): irgendwo im Feld. StartsWith: am Anfang des Felds.

AUSGABEN #

hashtable - Sql (string), Parameters (object[]), Variants (string[])

BEISPIELE #

$s = New-SqlWhereForSearch -Text $q -Column 'a.Match', 'a.Name1', 'a.Ort'
if ($s.Sql) { $where += $s.Sql; $params += $s.Parameters }