presto中substr和substring区别
时间: 2024-05-21 18:15:33 浏览: 197
在Presto中,`substr`和`substring`函数都是用于从字符串中提取子字符串的函数。它们的区别在于函数参数的含义和用法:
1. `substr`函数:
- 语法:`substr(string, start [, length])`
- 参数:
- `string`:要提取子字符串的字符串。
- `start`:子字符串的起始位置,从 1 开始计数。
- `length`:可选参数,表示要提取的子字符串的长度。如果不指定,则返回从起始位置到字符串结尾的所有字符。
- 示例:`select substr('Hello World', 7, 5)` 返回字符串 `'World'`。
2. `substring`函数:
- 语法:`substring(string FROM start [FOR length])`
- 参数:
- `string`:要提取子字符串的字符串。
- `start`:子字符串的起始位置,从 1 开始计数。
- `length`:可选参数,表示要提取的子字符串的长度。如果不指定,则返回从起始位置到字符串结尾的所有字符。
- 示例:`select substring('Hello World' FROM 7 FOR 5)` 返回字符串 `'World'`。
因此,两个函数的基本功能是相同的,都可以用于提取子字符串。但是,`substr`函数更接近标准 SQL 中的函数,而`substring`函数更接近 ANSI SQL 标准。在使用时,可以根据具体的需求选择使用哪个函数。
阅读全文