SUBSTRING 函數

SUBSTRING 是字串操作函數,可操作所有字串資料類型 (BIT、BLOB 及 CHARACTER) ,並從字串中擷取字元以建立另一個字串。

語法

讀取語法圖跳過視覺化語法圖substring(SourceExpression 開始開始位置之前BeforeExpression之後AfterExpression 針對StringLength )
參數必須是下列類型:
  • SourceExpressionBeforeExpressionAfterExpression 可以是 BIT、BLOB 或 CHARACTER。
  • 開始位置StringLength 只能是 INTEGER。

開始位置

如果您指定 開始位置, SUBSTRING 會傳回與 SourceExpression 相同類型的新字串,其中包含從 SourceExpression擷取的一個連續字元序列,如 開始位置StringLength所指定。 如果您未指定 StringLength,則序列會從 開始位置 開始執行,直到 SourceExpression結束為止。 開始位置 可以是負數,且 開始位置StringLength 一起定義範圍。 結果是此範圍與 SourceExpression之間的重疊; StringLength 不能小於 開始位置

BeforeExpression

如果您指定 BeforeExpression, SUBSTRING 會傳回與 SourceExpression 相同類型的新字串,其中包含在 SourceExpressionBeforeExpression 第一次出現之前,從 StringLength 字元擷取的一個連續字元序列,最多 (但不包括) BeforeExpression第一次出現的第一個字元。 如果您未指定 StringLength,則字元序列會從 SourceExpression 的開頭開始,直到 (但不包括) 第一次出現 BeforeExpression的第一個字元。 如果 BeforeExpression 字串未出現在 SourceExpression中,則會傳回空 (零長度) 字串。

BeforeExpression 字串必須與 SourceExpression具有相同的資料類型。

AfterExpression

如果您指定 AfterExpression, SUBSTRING 會傳回與 SourceExpression相同類型的新字串,其中包含從 SourceExpression擷取的一個連續字元序列,從第一個出現的 AfterExpression 結尾之後的第一個字元開始,直到 SourceExpression 結尾 (或 StringLength 字元,如果有指定的話)。 如果 AfterExpression 字串未出現在 SourceExpression中,則會傳回空 (零長度) 字串。

AfterExpression 字串必須與 SourceExpression具有相同的資料類型。

如果有任何參數是 NULL ,則結果是 NULL。 這不是長度為零的字串。

範例:

SUBSTRING('Hello World!' FROM 7 FOR 4)
傳回'Worl'.
SUBSTRING('Hello World!' BEFORE 'World');
傳回'Hello '.
SUBSTRING('Hello World!' BEFORE 'World' FOR 3);
傳回'lo '.
SUBSTRING('Hello World!' BEFORE 'e');
傳回'H'.
SUBSTRING('Hello World!' AFTER 'World');
傳回'!'.
SUBSTRING('Hello World!' AFTER 'W' FOR 2);
傳回'or'.
SUBSTRING('Hello World!' AFTER 'P');
傳回''.