長さが6のSQL列があります。その列の最初の文字だけを取得します。これを行うためにSQLに文字列関数はありますか?
LEFT(colName, 1)
もこれを行います。 SUBSTRING(colName, 1, 1)
と同等です。
私はLEFT
が好きです、なぜならそれは少しきれいだと思うからですが、実際には、どちらにも違いはありません。
私は好きです:
SUBSTRING (my_column, 1, 1)
これは標準SQL-92構文であり、したがって移植性が高いためです。
厳密に言えば、標準バージョンは
SUBSTRING (my_column FROM 1 FOR 1)
重要なのは、あるものから別のものに、つまり同様のベンダのバリエーションに変換することは簡単なことです。
pS標準SQLの関数は、標準からのものであると簡単に識別できるようにするために、従来のコンマリストではないパラメータリストを持つことで、意図的に反対であることが最近指摘されました。
最初の文字はSUBSTRING ( MyColumn, 1 , 1 )
、最初の2文字はSUBSTRING ( MyColumn, 1 , 2 )
です。
これを実現するのは簡単です。
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
そしてどちらか
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@結果:his
name__
- または -
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@結果:This i
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
選択したフィールドの最初の2文字をLeft(string,Number of Char in int)
で選択
SELECT LEFT(FName, 2) AS FirstName FROM dbo.NameMaster
あなたはSql文字列で文字列の最初の文字を検索する場合
SELECT CHARINDEX('char', 'my char')
=> return 4