Microsoft SQL Server
文字列関数
サーチ…
備考
文字列関数のリスト(アルファベット順にソート):
左
文字列の最も左の文字から始まり、指定された最大長までのサブ文字列を返します。
パラメーター:
- 文字式。文字式は、
text
またはntext
を除き、暗黙的にvarchar
またはnvarchar
変換できる任意のデータ型にすることができます - 最大長。 0から
bigint
最大値までの整数(9,223,372,036,854,775,807)。
max lengthパラメータが負の場合、エラーが発生します。
SELECT LEFT('This is my string', 4) -- result: 'This'
最大長が文字列の文字数より大きい場合、エンティティ文字列が返されます。
SELECT LEFT('This is my string', 50) -- result: 'This is my string'
右
指定された最大長を持つ、文字列の右端の部分文字列を返します。
パラメーター:
- 文字式。文字式は、
text
またはntext
を除き、暗黙的にvarchar
またはnvarchar
変換できる任意のデータ型にすることができます - 最大長。 0から
bigint
最大値までの整数(9,223,372,036,854,775,807)。 max lengthパラメータが負の場合、エラーが発生します。
SELECT RIGHT('This is my string', 6) -- returns 'string'
最大長が文字列の文字数より大きい場合、エンティティ文字列が返されます。
SELECT RIGHT('This is my string', 50) -- returns 'This is my string'
部分文字列
指定された開始インデックスと指定された最大長にあるcharで始まる部分文字列を返します。
パラメーター:
- 文字式。文字式は、
text
またはntext
を除き、暗黙的にvarchar
またはnvarchar
変換できる任意のデータ型にすることができます。 - インデックスを開始します。要求された部分文字列の開始インデックスを指定する数値(
int
またはbigint
)。 ( 注: SQL Serverの文字列は基本1インデックスであり、文字列の最初の文字はインデックス1です)。この場合、開始インデックスと最大長の合計が0より大きい場合、戻り文字列は文字式の最初の文字から始まり、長さが(start index +最大長 - 1)。 0より小さい場合、空の文字列が返されます。 - 最大長0から
bigint
最大値までの整数(9,223,372,036,854,775,807)。 max lengthパラメータが負の場合、エラーが発生します。
SELECT SUBSTRING('This is my string', 6, 5) -- returns 'is my'
最大長+開始インデックスが文字列内の文字数より多い場合、エンティティ文字列が返されます。
SELECT SUBSTRING('Hello World',1,100) -- returns 'Hello World'
開始インデックスが文字列の文字数より大きい場合、空の文字列が返されます。
SELECT SUBSTRING('Hello World',15,10) -- returns ''
ASCII
文字列の左端の文字のASCIIコードを表すint値を返します。
SELECT ASCII('t') -- Returns 116
SELECT ASCII('T') -- Returns 84
SELECT ASCII('This') -- Returns 84
文字列がUnicodeで、左端の文字がASCIIではないが現在の照合で表現可能な場合は、127より大きい値が返されます。
SELECT ASCII(N'ï') -- returns 239 when `SERVERPROPERTY('COLLATION') = 'SQL_Latin1_General_CP1_CI_AS'`
文字列がUnicodeで、現在の照合で一番左の文字を表すことができない場合は、63のint値が返されます(ASCIIの疑問符を表します)。
SELECT ASCII(N'߷') -- returns 63
SELECT ASCII(nchar(2039)) -- returns 63
CharIndex
別の文字列式の中で最初に現れる文字列式の開始インデックスを返します。
パラメータリスト:
- 検索する文字列(最大8000文字)
- 検索する文字列(任意の有効な文字データ型と長さ、バイナリを含む)
- (オプション)インデックスを開始します。 int型またはbig int型の数。省略または1未満の場合、文字列の先頭から検索が開始されます。
検索する文字列がvarchar(max)
、 nvarchar(max)
またはvarbinary(max)
場合、 CHARINDEX
関数はbigint
値を返します。それ以外の場合は、 int
を返します。
SELECT CHARINDEX('is', 'this is my string') -- returns 3
SELECT CHARINDEX('is', 'this is my string', 4) -- returns 6
SELECT CHARINDEX(' is', 'this is my string') -- returns 5
チャー
int ASCIIコードで表されるcharを返します。
SELECT CHAR(116) -- Returns 't'
SELECT CHAR(84) -- Returns 'T'
これは、新しい行/改行CHAR(10)
、改行CHAR(13)
などを導入するために使用できます。参考までにAsciiTable.comを参照してください。
引数の値が0〜255でない場合、CHAR関数はNULL
返しNULL
。
CHAR
関数の戻りデータ型はchar(1)
レン
文字列の文字数を返します。
注: LEN
関数は後続のスペースを無視します。
SELECT LEN('My string'), -- returns 9
LEN('My string '), -- returns 9
LEN(' My string') -- returns 12
末尾のスペースを含む長さが望ましい場合は、これを達成するためのいくつかの手法がありますが、それぞれには欠点があります。 1つの方法は、文字列に1文字を追加して、 LEN
から1を引いたものを使用することです。
DECLARE @str varchar(100) = 'My string '
SELECT LEN(@str + 'x') - 1 -- returns 12
欠点は、文字列変数または列の型が最大長であり、余分な文字の追加が破棄され、結果の長さが後続の空白をカウントしない場合です。これに対処するために、以下の修正バージョンは問題を解決し、少数の追加の実行時間を犠牲にしてすべてのケースで正しい結果をもたらします。これにより、サロゲートペアと合理的な実行速度を含む正しい結果が得られます。使用するのに最適なテクニックのようです:
SELECT LEN(CONVERT(NVARCHAR(MAX), @str) + 'x') - 1
もう1つの方法は、 DATALENGTH
関数を使用するDATALENGTH
です。
DECLARE @str varchar(100) = 'My string '
SELECT DATALENGTH(@str) -- returns 12
ただし、 DATALENGTH
はメモリー内の文字列の長さをバイト単位で戻しますが、注意が必要DATALENGTH
。これは、 varchar
とnvarchar
では異なります。
DECLARE @str nvarchar(100) = 'My string '
SELECT DATALENGTH(@str) -- returns 24
これを調整するには、文字列のデータ長を1文字のデータ長(同じ型でなければならない)で除算します。次の例ではこれを行い、ターゲット文字列が空の場合も処理し、ゼロ除算を回避しています。
DECLARE @str nvarchar(100) = 'My string '
SELECT DATALENGTH(@str) / DATALENGTH(LEFT(LEFT(@str, 1) + 'x', 1)) -- returns 12
ただし、これでもSQL Server 2012以降では問題があります。文字列にサロゲートペアが含まれていると、不正な結果が生成されます(一部の文字は同じ文字列の他の文字よりも多くのバイトを占めることがあります)。
もう1つの方法は、 REPLACE
を使用して空白を空白以外の文字に変換し、結果のLEN
を取る方法です。これにより、すべてのケースで正しい結果が得られますが、長い文字列では実行速度が非常に悪くなります。
連合
一緒に結合された2つ以上の文字列の結果である文字列を返します。 CONCAT
は2つ以上の引数を受け入れます。
SELECT CONCAT('This', ' is', ' my', ' string') -- returns 'This is my string'
注意:文字列連結演算子( +
)を使用して文字列を連結するのとは異なり、NULL値をconcat
関数に渡すと暗黙的に空文字列に変換されます。
SELECT CONCAT('This', NULL, ' is', ' my', ' string'), -- returns 'This is my string'
'This' + NULL + ' is' + ' my' + ' string' -- returns NULL.
また、非文字列型の引数は暗黙的に文字列に変換されます:
SELECT CONCAT('This', ' is my ', 3, 'rd string') -- returns 'This is my 3rd string'
非文字列型変数も文字列形式に変換されるため、手動で変換したり文字列にキャストする必要はありません。
DECLARE @Age INT=23;
SELECT CONCAT('Ram is ', @Age,' years old'); -- returns 'Ram is 23 years old'
古いバージョンはCONCAT
関数をサポートしていないため、代わりに文字列連結演算子( +
)を使用する必要があります。非文字列型は、このように連結するために、キャストまたは文字列型に変換する必要があります。
SELECT 'This is the number ' + CAST(42 AS VARCHAR(5)) --returns 'This is the number 42'
下げる
すべての大文字を小文字に変換した後に、文字式( varchar
またはnvarchar
)を返します。
パラメーター:
- 文字式。暗黙的に
varchar
変換できる文字またはバイナリデータの任意の式。
SELECT LOWER('This IS my STRING') -- Returns 'this is my string'
DECLARE @String nchar(17) = N'This IS my STRING';
SELECT LOWER(@String) -- Returns 'this is my string'
アッパー
すべての小文字を大文字に変換した後に文字式( varchar
またはnvarchar
)を返します。
パラメーター:
- 文字式。暗黙的に
varchar
変換できる文字またはバイナリデータの任意の式。
SELECT UPPER('This IS my STRING') -- Returns 'THIS IS MY STRING'
DECLARE @String nchar(17) = N'This IS my STRING';
SELECT UPPER(@String) -- Returns 'THIS IS MY STRING'
LTrim
最初のすべての空白、つまり左から最初の空白以外の空白文字を削除した後に、文字式( varchar
またはnvarchar
)を返します。
パラメーター:
- 文字式。暗黙的に
varcher
(text
、ntext
、image
を除く)に変換できる文字またはバイナリデータの表現。
SELECT LTRIM(' This is my string') -- Returns 'This is my string'
RTrim
末尾の空白をすべて削除した後の文字式( varchar
またはnvarchar
)を返します。空白は、文字列の右端から最初の空白文字がなくなるまで上書きされます。
パラメーター:
- 文字式。暗黙的に
varcher
(text
、ntext
、image
を除く)に変換できる文字またはバイナリデータの表現。
SELECT RTRIM('This is my string ') -- Returns 'This is my string'
Unicode
入力式の最初の文字のUnicode値を表す整数値を返します。
パラメーター:
- Unicode文字表現。任意の有効な
nchar
またはnvarchar
式。
SELECT UNICODE(N'Ɛ') -- Returns 400
DECLARE @Unicode nvarchar(11) = N'Ɛ is a char'
SELECT UNICODE(@Unicode) -- Returns 400
NChar
Unicode規格で定義されている整数引数に対応するUnicode文字( nchar(1)
またはnvarchar(2)
)を返します。
パラメーター:
- 整数式。 0〜65535の正の整数式、またはデータベースの照合で補助文字(CS)フラグがサポートされている場合、サポートされる範囲は0〜1114111です。整数式がこの範囲内にない場合、
null
が戻ってきた。
SELECT NCHAR(257) -- Returns 'ā'
SELECT NCHAR(400) -- Returns 'Ɛ'
逆
逆の順序で文字列値を返します。
パラメーター:
- 文字列式。暗黙的に
varchar
変換できる任意の文字列またはバイナリデータ。
Select REVERSE('Sql Server') -- Returns 'revreS lqS'
PatIndex
指定された式で指定されたパターンが最初に出現する開始位置を返します。
パラメーター:
パターン。見つかったシーケンスを含む文字式。最大長は8000文字に制限されています。パターンにはワイルドカード(
%
、_
)を使用できます。パターンがワイルドカードで始まらない場合は、式の先頭にあるものにのみ一致することがあります。ワイルドカードで終わらない場合は、式の末尾にあるものにのみ一致します。表現。任意の文字列データ型。
SELECT PATINDEX('%ter%', 'interesting') -- Returns 3.
SELECT PATINDEX('%t_r%t%', 'interesting') -- Returns 3.
SELECT PATINDEX('ter%', 'interesting') -- Returns 0, since 'ter' is not at the start.
SELECT PATINDEX('inter%', 'interesting') -- Returns 1.
SELECT PATINDEX('%ing', 'interesting') -- Returns 9.
スペース
繰り返されるスペースの文字列( varchar
)を返します。
パラメーター:
- 整数式。整数式で、8000までです。負の場合は
null
が戻されます。 0の場合、空の文字列が返されます。 (8000文字以上の文字列を返すには、Replicateを使います。
SELECT SPACE(-1) -- Returns NULL
SELECT SPACE(0) -- Returns an empty string
SELECT SPACE(3) -- Returns ' ' (a string containing 3 spaces)
複製する
指定された回数だけ文字列値を繰り返します。
パラメーター:
- 文字列式。文字列式には、文字列またはバイナリデータを使用できます。
- 整数式。
bigint
を含む任意の整数型。負の場合、null
が返されます。 0の場合、空の文字列が返されます。
SELECT REPLICATE('a', -1) -- Returns NULL
SELECT REPLICATE('a', 0) -- Returns ''
SELECT REPLICATE('a', 5) -- Returns 'aaaaa'
SELECT REPLICATE('Abc', 3) -- Returns 'AbcAbcAbc'
注:文字列式の型がvarchar(max)
またはnvarchar(max)
でなければ、戻り値は8000文字を超えません。戻り値がその制限を超えてしまう文字列を追加する前に、レプリケートが停止します。
SELECT LEN(REPLICATE('a b c d e f g h i j k l', 350)) -- Returns 7981
SELECT LEN(REPLICATE(cast('a b c d e f g h i j k l' as varchar(max)), 350)) -- Returns 8050
置換
指定されたサブストリングのすべての出現が別のサブストリングに置き換えられているストリング( varchar
またはnvarchar
)をnvarchar
ます。
パラメーター:
- 文字列式。これは検索される文字列です。文字またはバイナリのデータ型にすることができます。
- パターン。これは置き換えられるサブストリングです。文字またはバイナリのデータ型にすることができます。 pattern引数は空の文字列にすることはできません。
- 置換。これは、パターンのサブストリングを置き換えるサブストリングです。これは、文字データまたはバイナリデータです。
SELECT REPLACE('This is my string', 'is', 'XX') -- Returns 'ThXX XX my string'.
ノート:
- 文字列式の型が
varchar(max)
またはnvarchar(max)
でなければ、replace
関数は8,000文字で戻り値を切り捨てます。 - 戻り値のデータ型は入力データ型に依存します。入力値のいずれかが
nvarchar
場合はnvarchar
、それ以外の場合はvarchar
返します。 - いずれかの入力パラメータが
NULL
場合はNULL
String_Split
文字区切り文字を使用して文字列式を分割します。 STRING_SPLIT()
はテーブル値の関数であるため、 FROM
句内で使用する必要があります。
パラメーター:
- 文字列。任意の文字型式(
char
、nchar
、varchar
またはnvarchar
) - セパレータ。任意のタイプ(
char(1)
、nchar(1)
、varchar(1)
またはnvarchar(1)
)の単一文字式。
各行に文字列のフラグメントが含まれる単一の列テーブルを返します。列の名前は、 value
、およびデータ型はnvarchar
のパラメータのいずれかのいずれかである場合にnchar
またはnvarchar
さもなければ、 varchar
。
次の例では、スペースを区切り文字として使用して文字列を分割します。
SELECT value FROM STRING_SPLIT('Lorem ipsum dolor sit amet.', ' ');
結果:
value
-----
Lorem
ipsum
dolor
sit
amet.
備考:
STRING_SPLIT
機能は、互換性レベル130でのみ使用できます。データベースの互換性レベルが130より低い場合、SQL ServerはSTRING_SPLIT
関数を見つけて実行できません。次のコマンドを使用して、データベースの互換性レベルを変更できます。
ALTER DATABASE [database_name] SET COMPATIBILITY_LEVEL = 130
古いバージョンのSQL Serverには、分割文字列関数が組み込まれていません。文字列を分割する問題を処理する多くのユーザー定義関数があります。 Aaron Bertrandの記事「 分割文字列」を正しい方法で読むことができます。 あるいは、その一部を包括的に比較するための最良の方法です。
Str
数値データから変換された文字データ( varchar
)を返します。
パラメーター:
- 浮動式。小数点を含む近似数値データ型。
- 長さオプション。数字、小数点、および先頭のスペース(必要な場合)を含む、返される文字列式の合計の長さ。デフォルト値は10です。
- 小数。 オプション。小数点以下の桁数。 16より大きい場合、結果は小数点の右側の16桁に切り捨てられます。
SELECT STR(1.2) -- Returns ' 1'
SELECT STR(1.2, 3) -- Returns ' 1'
SELECT STR(1.2, 3, 2) -- Returns '1.2'
SELECT STR(1.2, 5, 2) -- Returns ' 1.20'
SELECT STR(1.2, 5, 5) -- Returns '1.200'
SELECT STR(1, 5, 2) -- Returns ' 1.00'
SELECT STR(1) -- Returns ' 1'
クォートネーム
有効なSQL Serverで区切られた識別子にするために区切り文字で囲まれたUnicode文字列を返します。
パラメーター:
- 文字列。 Unicodeデータの文字列。最大128文字(
sysname
)。入力文字列が128文字を超える場合、関数はnull
返しnull
。 - 引用符文字。 オプション 。区切り文字として使用する単一の文字。 (単一引用符であり得る
'
または``)、左または右のブラケット({
、[
、(
、<
または>
、)
、]
、}
)または二重引用符("
)。他の値は、NULLを返しますデフォルト値は大括弧で囲まれています。
SELECT QUOTENAME('what''s my name?') -- Returns [what's my name?]
SELECT QUOTENAME('what''s my name?', '[') -- Returns [what's my name?]
SELECT QUOTENAME('what''s my name?', ']') -- Returns [what's my name?]
SELECT QUOTENAME('what''s my name?', '''') -- Returns 'what''s my name?'
SELECT QUOTENAME('what''s my name?', '"') -- Returns "what's my name?"
SELECT QUOTENAME('what''s my name?', ')') -- Returns (what's my name?)
SELECT QUOTENAME('what''s my name?', '(') -- Returns (what's my name?)
SELECT QUOTENAME('what''s my name?', '<') -- Returns <what's my name?>
SELECT QUOTENAME('what''s my name?', '>') -- Returns <what's my name?>
SELECT QUOTENAME('what''s my name?', '{') -- Returns {what's my name?}
SELECT QUOTENAME('what''s my name?', '}') -- Returns {what's my name?}
SELECT QUOTENAME('what''s my name?', '`') -- Returns `what's my name?`
Soundex
2つの文字列の音声類似度を評価する4文字コード( varchar
)を返します。
パラメーター:
- 文字式。文字データの英数字表現。
soundex関数は、話したときに文字式がどのように発音するかに基づいて4文字のコードを作成します。最初のcharはパラメータの最初の文字の大文字バージョン、残りの3文字は式の文字を表す数字です(無視されるa、e、i、o、u、h、w、yは除く) 。
SELECT SOUNDEX ('Smith') -- Returns 'S530'
SELECT SOUNDEX ('Smythe') -- Returns 'S530'
差
2つの文字式のsoundex値の差を示す整数( int
)値を返します。
パラメーター:
- 文字式1。
- 文字式2。
両方のパラメーターは、文字データの英数字式です。
返される整数は、同じパラメータのsoundex値の文字数です。したがって、4は式が非常に似ていることを意味し、0は非常に異なることを意味します。
SELECT SOUNDEX('Green'), -- G650
SOUNDEX('Greene'), -- G650
DIFFERENCE('Green','Greene') -- Returns 4
SELECT SOUNDEX('Blotchet-Halls'), -- B432
SOUNDEX('Greene'), -- G650
DIFFERENCE('Blotchet-Halls', 'Greene') -- Returns 0
フォーマット
指定された形式とカルチャ(指定されている場合)でフォーマットされたNVARCHAR
値を返します。これは、主に日時型を文字列に変換するために使用されます。
パラメーター:
-
value
。フォーマットするためにサポートされるデータ型の式。有効なタイプは以下のとおりです。 -
format
。NVARCHAR
形式のパターン。 標準およびカスタム形式の文字列については、Microsoftの公式ドキュメントを参照してください。 -
culture
。 オプション 。カルチャを指定するnvarchar
引数デフォルト値は、現在のセッションのカルチャです。
日付
標準フォーマット文字列を使用する:
DECLARE @d DATETIME = '2016-07-31';
SELECT
FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' -- Returns '7/31/2016'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' -- Returns '31/07/2016'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' -- Returns '31.07.2016'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result' -- Returns '2016/7/31'
,FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result' -- Returns 'Sunday, July 31, 2016'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result' -- Returns '31 July 2016'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result' -- Returns 'Sonntag, 31. Juli 2016'
カスタム書式文字列を使用する:
SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result' -- Returns '31/07/2016'
,FORMAT(123456789,'###-##-####') AS 'Custom Number Result' -- Returns '123-45-6789',
,FORMAT( @d,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US') AS 'US' -- Returns 'Sunday, July 31, 2016 12:00:00 AM'
,FORMAT( @d,'dddd, MMMM dd, yyyy hh:mm:ss tt','hi-IN') AS 'Hindi' -- Returns रविवार, जुलाई 31, 2016 12:00:00 पूर्वाह्न
,FORMAT ( @d, 'dddd', 'en-US' ) AS 'US' -- Returns 'Sunday'
,FORMAT ( @d, 'dddd', 'hi-IN' ) AS 'Hindi' -- Returns 'रविवार'
FORMAT
は、 CURRENCY
、 PERCENTAGE
、およびNUMBERS
書式設定にも使用できます。
通貨
DECLARE @Price1 INT = 40
SELECT FORMAT(@Price1,'c','en-US') AS 'CURRENCY IN US Culture' -- Returns '$40.00'
,FORMAT(@Price1,'c','de-DE') AS 'CURRENCY IN GERMAN Culture' -- Returns '40,00 €'
小数点以下の桁数を指定できます。
DECLARE @Price DECIMAL(5,3) = 40.356
SELECT FORMAT( @Price, 'C') AS 'Default', -- Returns '$40.36'
FORMAT( @Price, 'C0') AS 'With 0 Decimal', -- Returns '$40'
FORMAT( @Price, 'C1') AS 'With 1 Decimal', -- Returns '$40.4'
FORMAT( @Price, 'C2') AS 'With 2 Decimal', -- Returns '$40.36'
PERCENTAGE
DECLARE @Percentage float = 0.35674
SELECT FORMAT( @Percentage, 'P') AS '% Default', -- Returns '35.67 %'
FORMAT( @Percentage, 'P0') AS '% With 0 Decimal', -- Returns '36 %'
FORMAT( @Percentage, 'P1') AS '% with 1 Decimal' -- Returns '35.7 %'
数
DECLARE @Number AS DECIMAL(10,2) = 454545.389
SELECT FORMAT( @Number, 'N','en-US') AS 'Number Format in US', -- Returns '454,545.39'
FORMAT( @Number, 'N','en-IN') AS 'Number Format in INDIA', -- Returns '4,54,545.39'
FORMAT( @Number, '#.0') AS 'With 1 Decimal', -- Returns '454545.4'
FORMAT( @Number, '#.00') AS 'With 2 Decimal', -- Returns '454545.39'
FORMAT( @Number, '#,##.00') AS 'With Comma and 2 Decimal', -- Returns '454,545.39'
FORMAT( @Number, '##.00') AS 'Without Comma and 2 Decimal', -- Returns '454545.39'
FORMAT( @Number, '000000000') AS 'Left-padded to nine digits' -- Returns '000454545'
有効な値の型リスト:( ソース )
Category Type .Net type
-------------------------------------------
Numeric bigint Int64
Numeric int Int32
Numeric smallint Int16
Numeric tinyint Byte
Numeric decimal SqlDecimal
Numeric numeric SqlDecimal
Numeric float Double
Numeric real Single
Numeric smallmoney Decimal
Numeric money Decimal
Date and Time date DateTime
Date and Time time TimeSpan
Date and Time datetime DateTime
Date and Time smalldatetime DateTime
Date and Time datetime2 DateTime
Date and Time datetimeoffset DateTimeOffset
重要事項:
- 有効でないカルチャ以外のエラーについては、
FORMAT
はNULL
を返しNULL
。たとえば、formatで指定された値が有効でない場合、NULL
が戻されます。 -
FORMAT
は、.NET Framework共通言語ランタイム(CLR)の存在をFORMAT
としています。 -
FORMAT
は、コロンとピリオドをエスケープする必要があるというCLRの書式設定規則に依存しています。したがって、フォーマット文字列(第2パラメータ)にコロンまたはピリオドが含まれている場合、入力値(第1パラメータ)が時刻データ型の場合は、コロンまたはピリオドをバックスラッシュでエスケープする必要があります。
FORMATドキュメンテーションの例を使用した日付と時刻の書式も参照してください。
String_エスケープ
テキスト内の特殊文字をエスケープし、エスケープされた文字でテキスト( nvarchar(max)
)を返します。
パラメーター:
テキスト。エスケープする必要がある文字列を表す
nvarchar
式です。タイプ。適用されるルールをエスケープします。現在サポートされている値は
'json'
のみです。
SELECT STRING_ESCAPE('\ /
\\ " ', 'json') -- returns '\\\t\/\n\\\\\t\"\t'
エスケープされる文字のリスト:
Special character Encoded sequence
-------------------------------------
Quotation mark (") \"
Reverse solidus (\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \t
Control character Encoded sequence
------------------------------------
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f