当前位置:网站首页>SQL function $TRANSLATE

SQL function $TRANSLATE

2022-08-02 11:35:00 User 7741497

SQL function $TRANSLATE

A string function that performs character-by-character replacement.

Outline

$TRANSLATE(string,identifier[,associator])

parameter

  • string - the target string.It can be a field name, literal, host variable, or SQL expression.
  • identifier - The character to search for in the string.It can be a string or numeric literal, host variable, or SQL expression.
  • associator - optional - replacement characters corresponding to each character in the identifier.It can be a string or numeric literal, host variable, or SQL expression.

Description

The

$TRANSLATE function performs character-by-character substitution in the return value string.It processes string arguments one character at a time.It compares each character in the string with each character in the identifier parameter.If $TRANSLATE finds a match, it notes the position of that character.

    The two-argument form of
  • $TRANSLATE removes all instances of characters in the identifier argument from the output string.
  • The three-argument form of
  • $TRANSLATE replaces all instances of each identifier character found in the string with the associated character corresponding to the position.Replacement is performed based on characters, not strings.If the identifier parameter contains more characters than the associated parameter, the extra characters in the identifier parameter are removed from the output string.If the identifier parameter contains fewer characters than the associated parameter, the extra characters in the associated parameter are ignored.

$TRANSLATE is case sensitive.

$TRANSLATE cannot be used to replace NULL with a character.

If too few parameters are specified, SQLCODE -380 will be issued.If too many parameters are specified, SQLCODE -381 is issued.

$TRANSLATE and REPLACE

$TRANSLATE performs character-by-character matching and replacement.REPLACE performs string-to-string matching and replacement.REPLACE can replace a single specified substring of one or more characters with another substring, or delete multiple instances of a specified substring.$TRANSLATE can replace multiple specified characters with the corresponding specified replacement characters.

By default, both functions are case-sensitive, start at the beginning of the string, and replace all matching instances.REPLACE has parameters that can be used to change these defaults.

Example

In the following example, the two parameters $TRANSLATE modify the name value by removing punctuation (comma, space, period, apostrophe, hyphen), returning a name that contains only alphabetic characters.Note that identifiers double the apostrophe to escape it as a literal character, not a string delimiter:

SELECT TOP 20 Name,$TRANSLATE(Name,', .''-') AS AlphaNameFROM Sample.PersonWHERE Name %STARTSWITH 'O'

In the following example, the three-argument $TRANSLATE modifies the name value by replacing commas and spaces with caret (^) characters, returning a three-part delimitedFirst name (last name, first name, middle initial).Note that the linker must specify “^” as many times as there are characters in the identifier:

SELECT TOP 20 Name,$TRANSLATE(Name,', ','^^') AS PiecesNamePuncFROM Sample.PersonWHERE Name %STARTSWITH 'O'

In the following example, the three-parameter $TRANSLATE is specified by replacing commas and spaces with caret (^) characters (specified in identifiers and ligators) andRemove periods, apostrophes and hyphens (specified in identifiers, from associated persons):

SELECT TOP 20 Name,$TRANSLATE(Name,', .''-','^^') AS PiecesNameNoPuncFROM Sample.PersonWHERE Name %STARTSWITH 'O'
原网站

版权声明
本文为[User 7741497]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/214/202208021118116018.html