답변:
LEFT(colName, 1)
또한 이것을 할 것입니다. 와 같습니다 SUBSTRING(colName, 1, 1)
.
나는 LEFT
조금 더 깨끗하다는 것을 알기 때문에 좋아 하지만 실제로는 어느 쪽도 차이가 없습니다.
LEFT(colName, length)
됩니다 SUBSTRING(colName, 1, length)
. 따라서 여기에는 최적화가 없으며 단지 환경 설정입니다.
나는 선호한다:
SUBSTRING (my_column, 1, 1)
표준 SQL-92 구문이므로 더 이식성이 뛰어납니다.
엄밀히 말하면 표준 버전은
SUBSTRING (my_column FROM 1 FOR 1)
요점은, 하나에서 다른 것으로, 따라서 유사한 벤더 변형으로 변환하는 것은 사소한 것입니다.
ps 표준 SQL의 함수는 표준 commalists가 아닌 매개 변수 목록을 사용하여 표준에서 온 것으로 쉽게 식별 할 수 있도록 의도적으로 반대한다는 것이 최근에 지적되었습니다!
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
다음에 의해 달성하는 것이 간단합니다
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
어느 한 쪽
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result = his
또는
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result = This i
입력
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