Antworten:
LEFT(colName, 1)
werde dies auch tun. Es ist gleichbedeutend mit SUBSTRING(colName, 1, 1)
.
Ich mag es LEFT
, da ich es etwas sauberer finde, aber es gibt wirklich keinen Unterschied.
LEFT(colName, length)
in SUBSTRING(colName, 1, length)
. Hier gibt es also keine Optimierungen , es ist nur eine Präferenz.
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, dass die Transformation von einem zum anderen und damit zu einer ähnlichen Anbietervariante trivial ist.
ps Ich wurde erst kürzlich darauf hingewiesen, dass Funktionen in Standard-SQL absichtlich gegensätzlich sind, indem sie Parameterlisten haben, die nicht die herkömmlichen Commalisten sind, um sie leicht als vom Standard stammend zu identifizieren!
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
Es ist einfach durch Folgendes zu erreichen
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
Entweder
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result = his
oder
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result = This i
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