SUBSTRING 函數
SUBSTRING 是字串操作函數,可操作所有字串資料類型 (BIT、BLOB 及 CHARACTER) ,並從字串中擷取字元以建立另一個字串。
語法
- SourceExpression、 BeforeExpression和 AfterExpression 可以是 BIT、BLOB 或 CHARACTER。
- 開始位置 和 StringLength 只能是 INTEGER。
開始位置
如果您指定 開始位置, SUBSTRING 會傳回與 SourceExpression 相同類型的新字串,其中包含從 SourceExpression擷取的一個連續字元序列,如 開始位置 和 StringLength所指定。 如果您未指定 StringLength,則序列會從 開始位置 開始執行,直到 SourceExpression結束為止。 開始位置 可以是負數,且 開始位置 和 StringLength 一起定義範圍。 結果是此範圍與 SourceExpression之間的重疊; StringLength 不能小於 開始位置。
BeforeExpression
如果您指定 BeforeExpression, SUBSTRING 會傳回與 SourceExpression 相同類型的新字串,其中包含在 SourceExpression內 BeforeExpression 第一次出現之前,從 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');傳回''.