我有一个长度为6的SQL列。现在只想取这一列的第一个字符。SQL中有字符串函数来做这个吗?


当前回答

在选定字段中选择左前两个字符(字符串,int中的字符数)

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

其他回答

在选定字段中选择左前两个字符(字符串,int中的字符数)

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

LEFT(colName, 1)也会这样做。它等价于SUBSTRING(colName, 1,1)。

我喜欢LEFT,因为我觉得它更干净一点,但实际上,这两种方式都没有区别。

第一个字符为SUBSTRING (MyColumn, 1,1),前两个字符为SUBSTRING (MyColumn, 1,2)。

SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student

输入

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