Jawaban:
LEFT(colName, 1)
juga akan melakukan ini. Ini setara dengan SUBSTRING(colName, 1, 1)
.
Saya suka LEFT
, karena saya merasa sedikit lebih bersih, tapi sungguh, tidak ada perbedaan.
LEFT(colName, length)
ke dalam SUBSTRING(colName, 1, length)
. Jadi tidak ada optimasi di sini, itu hanya preferensi.
Saya lebih memilih:
SUBSTRING (my_column, 1, 1)
karena itu adalah sintaks Standar SQL-92 dan karenanya lebih portabel.
Sebenarnya, versi standarnya adalah
SUBSTRING (my_column FROM 1 FOR 1)
Intinya adalah, mengubah dari satu ke yang lain, maka untuk variasi vendor yang serupa, adalah sepele.
ps Baru-baru ini menunjukkan kepada saya bahwa fungsi-fungsi dalam SQL standar sengaja bertentangan, dengan memiliki daftar parameter yang bukan commalists konvensional, untuk membuatnya mudah diidentifikasi sebagai berasal dari standar!
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
Sangat mudah untuk mencapai hal-hal berikut ini
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
Antara
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result = his
atau
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result = This i
MEMASUKKAN
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