Wie finde ich die Position eines Zeichens in einer SQLite-Spalte?

8

Wenn das Ergebnis " [email protected] " ist und ich die Position des @ Symbols (3) finden möchte. Ist es möglich? Es scheint nicht, dass SQLite das Äquivalent von INSTR , LOCATE , POSITION oder einer solchen Funktion hat.

%Vor%

Update Ich habe letztendlich eine benutzerdefinierte Erweiterungsfunktion registriert, war aber überrascht, dass ich es tun musste.

    
tofutim 08.08.2011, 23:43
quelle

7 Antworten

10

Abrufen des Dateinamens von einem Pfad:

%Vor%

Erhalten von Ссылка , hoffe, es könnte jemandem helfen.

    
Pavel Polushkin 27.05.2014 12:54
quelle
6

Ich weiß nicht, ob das ein neuer Zusatz ist, aber die INSTR Funktion wird tatsächlich die finden 1. Instanz.

    
mediaczar 19.01.2015 12:07
quelle
2

Wie Sie hier sehen können, ist charindex nicht im SQLite-Standardpaket (zumindest in Version 3.6.2, die ich verwende) . Aber diese Erweiterung (extension-functions.c) hat Charindex, das ist im Grunde das gleiche wie die VB instr.

Um diese Funktionen zu sqlite hinzuzufügen:

Wir müssen den C-Quellcode kompilieren, um die sqlite-Erweiterung zu erstellen (vorausgesetzt, Sie sind unter Windows):

  • Installieren Sie den mingw Compiler, klein und einfach zu machen.

  • Kopieren Sie sqlite3.h in denselben Ordner

  • gcc -fPIC -lm -shared Erweiterungsfunktionen.c -o libsqlitefunctions.dll

  • fireup sqlite

  • Wählen Sie load_extension ('libsqlitefunctions.dll')

Es gibt auch andere String- und mathematische Funktionen.

    
MojAmiri 07.01.2014 23:59
quelle
2

Bekam das von ein Spiceworks-Beitrag :

  

Der erste Schritt besteht darin, alle Zeichen bis zu einem bestimmten Zeichen zu entfernen   mit ltrim oder rtrim. Wenn Sie einen Dateinamen abrufen, trimmen Sie   alle Zeichen, die keine Schrägstriche sind. Wenn Sie einen Benutzernamen abrufen   dann trimmst du alles, was kein @ -Zeichen ist. Sie können dann verwenden   Diese beschnittene Zeichenfolge in einer Ersetzungsfunktion ersetzt ihr Auftreten   mit einer leeren Zeichenfolge. Das wird dich mit jedem Charakter versorgen   Du hast gerade den ersten Schritt getrimmt. Mit anderen Worten, der Benutzername oder   Dateiname.

%Vor%
  

Benutzer von E-Mail abrufen:

%Vor%     
Robert Muil 16.10.2012 16:25
quelle
0

Verwenden Sie charindex('c', column, 0)

hängt von der Version von SQLite ab.

    
jow corvo 21.09.2012 18:20
quelle
-1
%Vor%

Hier ist eine grundlegende Ressource, die Ihnen gefallen könnte: Ссылка

    
Chains 08.08.2011 23:52
quelle
-7

Die Position von char '@' kann mit der Funktion CHARINDEX (MSSQL) gefunden werden:

%Vor%     
DAlex 23.04.2012 07:56
quelle

Tags und Links