メインコンテンツへスキップ

ASCII

文字列式の左端の文字の ASCII コード値を返します。 構文
ASCII(character_expression)
パラメータ
  • character_expression 文字列式。
SELECT ASCII('0');
--  Result: 48

CHAR

整数の ASCII コードを対応する文字に変換します。 構文
CHAR(character_expression)
パラメータ
  • integer_expression 0 から 255 までの整数。
SELECT CHAR(48);
-- Result: '0'

CHARINDEX

文字列内で指定された式の開始位置を返します。 構文
CHARINDEX(expressionToFind ,expressionToSearch [,start_location ])
パラメータ
  • expressionToFind 検索する文字列式。
  • expressionToSearch 検索対象の文字列式(通常はカラム)。
  • start_location expressionToSearch 内で expressionToFind の検索を開始する文字位置(オプション)。
SELECT CHARINDEX('456', '0123456');
-- Result: 4

SELECT CHARINDEX('456', '0123456', 5);
-- Result: -1

CHAR_LENGTH

式に含まれる UTF-8 文字の数を返します。 構文
CHAR_LENGTH(character_expression)
パラメータ
  • character_expression 長さを評価する文字のセット。
SELECT CHAR_LENGTH('sample text') FROM Account LIMIT 1
-- Result: 11

CONCAT

2 つ以上の文字列値を連結した文字列を返します。 構文
CONCAT(string_value1, string_value2 [, string_valueN])
パラメータ
  • string_value1 連結する最初の文字列。
  • string_value2 連結する 2 番目の文字列。
  • string_valueN 連結する追加の文字列(オプション)。
SELECT CONCAT('Hello, ', 'world!');
-- Result: 'Hello, world!'

CONTAINS

expressionToFind が expressionToSearch 内で見つかった場合は 1 を返し、それ以外の場合は 0 を返します。 構文
CONTAINS(expressionToSearch, expressionToFind)
パラメータ
  • expressionToSearch 検索対象の文字列式(通常はカラム)。
  • expressionToFind 検索する文字列式。
SELECT CONTAINS('0123456', '456');
-- Result: 1

SELECT CONTAINS('0123456', 'Not a number');
-- Result: 0

ENDSWITH

character_expression が character_suffix で終わる場合は 1 を返し、それ以外の場合は 0 を返します。 構文
ENDSWITH(character_expression, character_suffix)
パラメータ
  • character_expression 文字列式。
  • character_suffix 検索する文字列の接尾辞。
SELECT ENDSWITH('0123456', '456');
-- Result: 1

SELECT ENDSWITH('0123456', '012');
-- Result: 0

FILESIZE

指定されたファイルパスにあるファイルのバイト数を返します。 構文
FILESIZE(uri)
パラメータ
  • uri サイズを読み取るファイルのパス。
SELECT FILESIZE('C:/Users/User1/Desktop/myfile.txt');
-- Result: 23684

FORMAT

指定された書式で整形した値を返します。 構文
FORMAT(value [, parseFormat], format )
パラメータ
  • value 整形する文字列。
  • parseFormat 日付値の入力構文を指定する文字列。数値型には適用されません。
  • format 日付または数値の出力書式を指定する文字列。
SELECT FORMAT(12.34, '#');
-- Result: 12

SELECT FORMAT(12.34, '#.###');
-- Result: 12.34

SELECT FORMAT(1234, '0.000E0');
-- Result: 1.234E3

SELECT FORMAT('2019/01/01', 'yyyy-MM-dd');
-- Result: 2019-01-01

SELECT FORMAT('20190101', 'yyyyMMdd', 'yyyy-MM-dd');
-- Result: '2019-01-01'

FROM_UNIXTIME

unix_timestamp 引数を、現在のタイムゾーンで表される YYYY-MM-DD HH:MM:SS 形式の値として返します。 構文
FROM_UNIXTIME(time, issecond)
パラメータ
  • time エポック時刻からのタイムスタンプ値。ミリ秒を指定できます。
  • issecond タイムスタンプ値がエポック時刻からのミリ秒であることを示します。
SELECT FROM_UNIXTIME(1540495231, 1);
-- Result: 2018-10-25 19:20:31

SELECT FROM_UNIXTIME(1540495357385, 0);
-- Result: 2018-10-25 19:22:37

HASHBYTES

指定されたアルゴリズムを使用して、入力値のハッシュをバイト配列として返します。サポートされるアルゴリズムは MD5、SHA1、SHA2_256、および SHA2_512 です。 構文
HASHBYTES(algorithm, value)
パラメータ
  • algorithm ハッシュに使用するアルゴリズム。MD5、SHA1、SHA2_256、または SHA2_512 のいずれかである必要があります。
  • value ハッシュ対象の値。文字列またはバイト配列である必要があります。
SELECT HASHBYTES('MD5', 'Test');
-- Result (byte array): 0x0CBC6611F5540BD0809A388DC95A615B

INDEXOF

文字列内で指定された式の開始位置を返します。 構文
INDEXOF(expressionToSearch, expressionToFind [,start_location ])
パラメータ
  • expressionToSearch 検索対象の文字列式(通常はカラム)。
  • expressionToFind 検索する文字列式。
  • start_location expressionToSearch 内で expressionToFind の検索を開始する文字位置(オプション)。
SELECT INDEXOF('0123456', '456');
-- Result: 4

SELECT INDEXOF('0123456', '456', 5);
-- Result: -1

ISNULL

null を指定された置換値で置き換えます。 構文
ISNULL ( check_expression , replacement_value )
パラメータ
  • check_expression null かどうかをチェックする式。
  • replacement_value check_expression が null の場合に返される式。
SELECT ISNULL(42, 'Was NULL');
-- Result: 42

SELECT ISNULL(NULL, 'Was NULL');
-- Result: 'Was NULL'

JSON_AVG

JSON オブジェクト内の JSON 配列の平均値を計算します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。 構文
JSON_AVG(json, jsonpath)
パラメータ
  • json 計算対象の JSON ドキュメント。
  • jsonpath ノードを選択するために使用する JSONPath。[x]、[2..]、[..8]、または [1..12] が利用できます。[x] はすべてのノードを選択します。
SELECT JSON_AVG('[1,2,3,4,5]', '$[x]');
-- Result: 3

SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 3

SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 4.5

JSON_COUNT

JSON オブジェクト内の JSON 配列の要素数を返します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。 構文
JSON_COUNT(json, jsonpath)
パラメータ
  • json 計算対象の JSON ドキュメント。
  • jsonpath ノードを選択するために使用する JSONPath。[x]、[2..]、[..8]、または [1..12] が利用できます。[x] はすべてのノードを選択します。
SELECT JSON_COUNT('[1,2,3,4,5]', '$[x]');
-- Result: 5

SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 5

SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 2

JSON_EXTRACT

JSON 配列またはオブジェクト内の任意の値を選択します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。 構文
JSON_EXTRACT(json, jsonpath)
パラメータ
  • json 抽出対象の JSON ドキュメント。
  • jsonpath ノードを選択するために使用する XPath。JSONPath は文字列定数である必要があります。選択されたノードの値はトークン区切りのリストで返されます。
SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test');
-- Result: '{"data":1}'

SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test.data');
-- Result: 1

SELECT JSON_EXTRACT('{"test": {"data": [1, 2, 3]}}', '$.test.data[1]');
-- Result: 2

JSON_MAX

JSON オブジェクト内の JSON 配列の最大値を取得します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。 構文
JSON_MAX(json, jsonpath)
パラメータ
  • json 計算対象の JSON ドキュメント。
  • jsonpath ノードを選択するために使用する JSONPath。[x]、[2..]、[..8]、または [1..12] が利用できます。[x] はすべてのノードを選択します。
SELECT JSON_MAX('[1,2,3,4,5]', '$[x]');
-- Result: 5

SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 5

SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[..3]');
-- Result: 4

JSON_MIN

JSON オブジェクト内の JSON 配列の最小値を取得します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。 構文
JSON_MIN(json, jsonpath)
パラメータ
  • json 計算対象の JSON ドキュメント。
  • jsonpath ノードを選択するために使用する JSONPath。[x]、[2..]、[..8]、または [1..12] が利用できます。[x] はすべてのノードを選択します。
SELECT JSON_MIN('[1,2,3,4,5]', '$[x]');
-- Result: 1

SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 1

SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 4

JSON_SUM

JSONPath 式に従って JSON の合計値を計算します。戻り値は数値または null です。 構文
JSON_SUM(json, jsonpath)
パラメータ
  • json 計算対象の JSON ドキュメント。
  • jsonpath ノードを選択するために使用する JSONPath。[x]、[2..]、[..8]、または [1..12] が利用できます。[x] はすべてのノードを選択します。
SELECT JSON_SUM('[1,2,3,4,5]', '$[x]');
-- Result: 15

SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 15

SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 9

LEFT

指定された文字列の左から数えて、指定された数の文字を返します。 構文
LEFT(character_expression , integer_expression)
パラメータ
  • character_expression 文字列式。
  • integer_expression character_expression の左から数えて何文字を返すかを指定する正の整数。
SELECT LEFT('1234567890', 3);
-- Result: '123'

LEN

指定された文字列式の文字数を返します。 構文
LEN(string_expression)
パラメータ
  • string_expression 文字列式。
SELECT LEN('12345');
-- Result: 5

LOCATE

文字列内の何文字目に部分文字列が現れるかを表す整数を返します。 構文
LOCATE(substring,string)
パラメータ
  • substring 大きい文字列の中で検索する部分文字列。
  • string 部分文字列を検索する対象の大きい文字列。
SELECT LOCATE('sample','XXXXXsampleXXXXX');
-- Result: 6

LOWER

大文字の文字データを小文字に変換した文字列式を返します。 構文
LOWER(character_expression)
パラメータ
  • character_expression 文字列式。
SELECT LOWER('MIXED case');
-- Result: 'mixed case'

LTRIM

先頭の空白を削除した文字列式を返します。 構文
LTRIM(character_expression)
パラメータ
  • character_expression 文字列式。
SELECT LTRIM('   trimmed');
-- Result: 'trimmed'

MASK

文字列内の start_index と end_index の間にある文字を mask_character で置き換えます。 構文
MASK(string_expression, mask_character [, start_index [, end_index ]])
パラメータ
  • string_expression 検索対象の文字列式。
  • mask_character マスクに使用する文字。
  • start_index 文字列の先頭でマスクしない文字数(オプション)。デフォルトは 0 です。
  • end_index 文字列の末尾でマスクしない文字数(オプション)。デフォルトは 0 です。
SELECT MASK('1234567890','*',);
-- Result: '**********'

SELECT MASK('1234567890','*', 4);
-- Result: '1234******'

SELECT MASK('1234567890','*', 4, 2);
-- Result: '1234****90'

NCHAR

Unicode 標準で定義されている指定された整数コードに対応する Unicode 文字を返します。 構文
NCHAR(integer_expression)
パラメータ
  • integer_expression 0 から 255 までの整数。

OCTET_LENGTH

式に含まれるバイト数を返します。 構文
OCTET_LENGTH(character_expression)
パラメータ
  • character_expression 評価する文字のセット。
SELECT OCTET_LENGTH('text') FROM Account LIMIT 1
-- Result: 4

PATINDEX

式内でパターンが最初に出現する開始位置を返します。パターンが見つからない場合は 0 を返します。 構文
PATINDEX(pattern, expression)
パラメータ
  • pattern 検索する一連の文字を含む文字列式。ワイルドカード文字 % は式の先頭または末尾でのみ使用できます。
  • expression パターンを検索する対象の式(通常はカラム)。
SELECT PATINDEX('123%', '1234567890');
-- Result: 1

SELECT PATINDEX('%890', '1234567890');
-- Result: 8

SELECT PATINDEX('%456%', '1234567890');
-- Result: 4

POSITION

文字列内で指定された式の開始位置を返します。 構文
POSITION(expressionToFind IN expressionToSearch)
パラメータ
  • expressionToFind 検索する文字列式。
  • expressionToSearch 検索対象の文字列式(通常はカラム)。
SELECT POSITION('456'\` \`IN '123456');
-- Result: 4

SELECT POSITION('x'\` \`IN '123456');
-- Result: 0

QUOTENAME

指定された Unicode 文字列に必要な区切り文字を追加することで、有効な SQL Server 区切り識別子を返します。 構文
QUOTENAME(character_string [, quote_character])
パラメータ
  • character_string Unicode 文字データの文字列。文字列は 128 文字に制限されています。128 文字を超える入力は null を返します。
  • quote_character 区切り文字として使用する 1 文字(オプション)。シングルクォート、左または右の角括弧、ダブルクォートのいずれかを指定できます。quote_character が指定されていない場合は角括弧が使用されます。
SELECT QUOTENAME('table_name');
-- Result: '[table_name]'

SELECT QUOTENAME('table_name', '"');
-- Result: '"table_name"'

SELECT QUOTENAME('table_name', '[');
-- Result: '[table_name]'

REPLACE

ある文字列のすべての出現箇所を別の文字列で置き換えます。 構文
REPLACE(string_expression, string_pattern, string_replacement)
パラメータ
  • string_expression 検索対象の文字列式。文字またはバイナリのデータ型を指定できます。
  • string_pattern 検索する部分文字列。空文字列は指定できません。
  • string_replacement 置換する文字列。
SELECT REPLACE('1234567890', '456', '|');
-- Result: '123|7890'

SELECT REPLACE('123123123', '123', '.');
-- Result: '...'

SELECT REPLACE('1234567890', 'a', 'b');
-- Result: '1234567890'

REPLICATE

指定された回数だけ文字列値を繰り返します。 構文
REPLICATE(string_expression ,integer_expression)
パラメータ
  • string_expression 繰り返す文字列。
  • integer_expression 繰り返し回数。
SELECT REPLACE('x', 5);
-- Result: 'xxxxx'

REVERSE

文字列式を逆順にして返します。 構文
REVERSE(string_expression)
パラメータ
  • string_expression 文字列。
SELECT REVERSE('1234567890');
-- Result: '0987654321'
指定された文字数で文字列の右部分を返します。 構文
RIGHT ( character_expression , integer_expression )
パラメータ
  • character_expression 文字列式。
  • integer_expression 文字列式の何文字を返すかを指定する正の整数。
SELECT RIGHT('1234567890', 3);
-- Result: '890'

RTRIM

末尾の空白を削除した後の文字列式を返します。 構文
RTRIM(character_expression)
パラメータ
  • character_expression 文字列式。
SELECT RTRIM('trimmed   ');
-- Result: 'trimmed'

SOUNDEX

文字列を発音したときの音に基づく 4 文字の Soundex コードを返します。 構文
SOUNDEX(character_expression)
パラメータ
  • character_expression 文字データの英数字式。
SELECT SOUNDEX('smith');
-- Result: 'S530'

SPACE

スペースを繰り返した文字列を返します。 構文
SPACE(repeatcount)
パラメータ
  • repeatcount スペースの数。
SELECT SPACE(5);
-- Result: '   '

SPLIT

2 つの区切り文字の間にある文字列のセクションを返します。 構文
SPLIT(string, delimiter, offset)
パラメータ
  • string 分割する文字列。
  • delimiter 文字列を分割する文字。
  • offset 返す分割の番号。正の数は左からのオフセットとして、負の数は右からのオフセットとして扱われます。
SELECT SPLIT('a/b/c/d', '/', 1);
-- Result: 'a'

SELECT SPLIT('a/b/c/d', '/', -2);
-- Result: 'c'

STARTSWITH

character_expression が character_prefix で始まる場合は 1 を返し、それ以外の場合は 0 を返します。 構文
STARTSWITH(character_expression, character_prefix)
パラメータ
  • character_expression 文字列式。
  • character_prefix 検索する文字列の接頭辞。
SELECT STARTSWITH('0123456', '012');
-- Result: 1

SELECT STARTSWITH('0123456', '456');
-- Result: 0

STR

数値データから変換された文字データを返します。例えば、STR(123.45, 6, 1) は 123.5 を返します。 構文
STR(float_expression [ , integer_length [ , integer_decimal ] ])
パラメータ
  • float_expression 浮動小数点式。
  • length 返す全体の長さ(オプション)。これには小数点、符号、数字、およびスペースが含まれます。デフォルトは 10 です。
  • decimal 小数点の右側の桁数(オプション)。decimal は 16 以下である必要があります。
SELECT STR('123.456');
-- Result: '123'

SELECT STR('123.456', 2);
-- Result: '**'

SELECT STR('123.456', 10, 2);
-- Result: '123.46'

STUFF

ある文字列を別の文字列に挿入します。最初の文字列の開始位置から指定された文字数を削除し、その開始位置に 2 番目の文字列を挿入します。 構文
STUFF(character_expression , integer_start , integer_length , replaceWith_expression)
パラメータ
  • character_expression 文字列式。
  • start 削除と挿入を開始する位置を指定する整数値。start または length が負の場合は null が返されます。start が変更対象の文字列 character_expression よりも長い場合は null が返されます。
  • length 削除する文字数を指定する整数。length が character_expression よりも長い場合、削除は replaceWith_expression の最後の文字まで行われます。
  • replaceWith_expression start 値から開始して character_expression の length 文字を置き換える文字データの式。
SELECT STUFF('1234567890', 3, 2, 'xx');
-- Result: '12xx567890'

SUBSTRING

指定された長さの文字列の一部を返します。指定されたインデックスから開始します。 構文
SUBSTRING(string_value FROM start FOR length)
パラメータ
  • string_value 文字列。
  • start 返す文字の開始インデックスを指定する正の整数。
  • length オプション。返す文字数を指定する正の整数。
SELECT SUBSTRING('1234567890' FROM 3 FOR 2);
-- Result: '34'

SELECT SUBSTRING('1234567890' FROM 3);
-- Result: '34567890'

TOSTRING

このインスタンスの値を、それと等価な文字列表現に変換します。 構文
TOSTRING(string_value1)
パラメータ
  • string_value1 変換する文字列。
SELECT TOSTRING(123);
-- Result: '123'

SELECT TOSTRING(123.456);
-- Result: '123.456'

SELECT TOSTRING(null);
-- Result: ''

TRIM

先頭または末尾の空白を削除した文字列式を返します。 構文
TRIM(trimspec trimchar FROM string_value)
パラメータ
  • trimspec オプション。指定する場合は、キーワード BOTHLEADINGTRAILING のいずれかである必要があります。
  • trimchar オプション。指定する場合は 1 文字の文字列値である必要があります。
  • string_value トリミングする文字列値。
SELECT TRIM('   trimmed   ');
-- Result: 'trimmed'

SELECT TRIM(LEADING FROM '   trimmed   ');
-- Result: 'trimmed   '

SELECT TRIM('-'\` \`FROM '-----trimmed-----');
-- Result: 'trimmed'

SELECT TRIM(BOTH '-'\` \`FROM '-----trimmed-----');
-- Result: 'trimmed'

SELECT TRIM(TRAILING '-'\` \`FROM '-----trimmed-----');
-- Result: '-----trimmed'

UNICODE

入力式の最初の文字について、Unicode 標準で定義されている整数値を返します。 構文
UNICODE(ncharacter_expression)
パラメータ
  • ncharacter_expression Unicode 文字列式。

UPPER

小文字の文字データを大文字に変換した文字列式を返します。 構文
UPPER(character_expression)
パラメータ
  • character_expression 文字列式。
SELECT UPPER('MIXED case');
-- Result: 'MIXED CASE'

XML_EXTRACT

指定された XPath を使用して XML ドキュメントを抽出し、XML をフラット化します。デフォルトでは出力の区切り文字としてカンマが使用されますが、3 番目のパラメータを指定することで変更できます。 構文
XML_EXTRACT(xml, xpath [, separator])
パラメータ
  • xml 抽出する XML ドキュメント。
  • xpath ノードを選択するために使用する XPath。選択されたノードはトークン区切りのリストで返されます。
  • separator フラット化されたレスポンス内の項目を区切るために使用するトークン(オプション)。指定されない場合、区切り文字はカンマになります。
SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch');
-- Result: 'a,e,i,o,u'

SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch', ';');
-- Result: 'a;e;i;o;u'