Réponses:
LEFT(colName, 1)
fera également cela. C'est équivalent à SUBSTRING(colName, 1, 1)
.
J'aime LEFT
, car je le trouve un peu plus propre, mais vraiment, il n'y a aucune différence de toute façon.
LEFT(colName, length)
en interne par SUBSTRING(colName, 1, length)
. Il n'y a donc aucune optimisation ici, c'est juste une préférence.
Je préfère:
SUBSTRING (my_column, 1, 1)
car il s'agit de la syntaxe Standard SQL-92 et donc plus portable.
À strictement parler, la version standard serait
SUBSTRING (my_column FROM 1 FOR 1)
Le fait est que la transformation de l'un à l'autre, donc à toute variation de fournisseur similaire, est triviale.
ps On m'a fait remarquer récemment que les fonctions en SQL standard sont délibérément contraires, en ayant des listes de paramètres qui ne sont pas les commalistes classiques, afin de les rendre facilement identifiables comme étant du standard!
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
Il est simple à réaliser par les éléments suivants
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
Soit
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result = his
ou
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result = This i
CONTRIBUTION
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