it-swarm.com.de

Wie bekomme ich das erste Zeichen eines Strings in SQL?

Ich habe eine SQL-Spalte mit einer Länge von 6. Jetzt möchte ich nur das erste Zeichen dieser Spalte nehmen. Gibt es eine Zeichenfolge-Funktion in SQL, um dies zu tun?

212
Vinod

LEFT(colName, 1) macht das auch. Es entspricht SUBSTRING(colName, 1, 1).

Ich mag LEFT, da ich es ein bisschen sauberer finde, aber eigentlich gibt es keinen Unterschied.

377
Eric

Ich bevorzuge:

SUBSTRING (my_column, 1, 1)

weil es Standard SQL-92-Syntax ist und daher portabler.


Genau genommen wäre die Standardversion

SUBSTRING (my_column FROM 1 FOR 1)

Der Punkt ist, sich von einem zum anderen zu transformieren, daher zu einer ähnlichen Herstellervariation, ist trivial.

p.s. Mir wurde erst kürzlich darauf hingewiesen, dass Funktionen in Standard-SQL absichtlich entgegengesetzt sind, indem Parameterlisten, die nicht die herkömmlichen Kommalisten sind, vorhanden sind, um sie leicht als vom Standard unterscheidbar zu machen!

36
onedaywhen

SUBSTRING ( MyColumn, 1 , 1 ) für das erste Zeichen und SUBSTRING ( MyColumn, 1 , 2 ) für die ersten beiden.

14
Damovisa

Es ist einfach, dies folgendermaßen zu erreichen:

DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)

und entweder

SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result

@Ergebnis: his

-ODER-

SET @Result = LEFT(@SomeString, 6)
SELECT @Result

@Ergebnis: This i

7
jet_choong
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
7
Devendra Verma

EINGANG

STRMIDDLENAME
--------------
Aravind Chaterjee
Shivakumar
Robin Van Parsee

SELECT STRMIDDLENAME, 
CASE WHEN INSTR(STRMIDDLENAME,' ',1,2) != 0 THEN SUBSTR(STRMIDDLENAME,1,1) || SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,1)+1,1)||
SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,2)+1,1)
WHEN INSTR(STRMIDDLENAME,' ',1,1) != 0 THEN SUBSTR(STRMIDDLENAME,1,1) || SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,1)+1,1)
ELSE SUBSTR(STRMIDDLENAME,1,1)
END AS FIRSTLETTERS
FROM Dual;

OUTPUT
STRMIDDLENAME                    FIRSTLETTERS
---------                        -----------------
Aravind Chaterjee                AC           
Shivakumar                       S
Robin Van Parsee                 RVP
1
Shiv

Wählen Sie die ersten beiden Zeichen im ausgewählten Feld mit Left(string,Number of Char in int)

SELECT LEFT(FName, 2) AS FirstName FROM dbo.NameMaster
0
Darshan

Wenn Sie das erste Zeichen der Zeichenfolge in SQL-Zeichenfolge suchen

SELECT CHARINDEX('char', 'my char')

=> return 4
0
LittleJC