DaveBirdsall commented on a change in pull request #1767: [TRAFODION-3254] Add 
*SPLIT_PART Function* in Trafodion SQL Reference Manual
URL: https://github.com/apache/trafodion/pull/1767#discussion_r248090026
 
 

 ##########
 File path: 
docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc
 ##########
 @@ -8829,6 +8829,222 @@ with the character set specified by _char-set-name_.
 SPACE(3)
 ```
 
+<<<
+[[split_part_function]]
+== SPLIT_PART Function
+
+The SPLIT_PART function returns the n^th^ substring that is split on the 
defined `_delimiter_` and `_filed-position_`.
+
+SPLIT_PART is a Trafodion SQL extension.
+
+`SPLIT_PART (_source-string, delimiter, filed-position_)`
+
+[[syntax_description_of_split_part]]
+=== Syntax Description of SPLIT_PART
+
+* `_source-string_`
++
+is a string to be split. 
++
+NOTE: The `_source-string_` must be character and cannot be NULL.
+
+* `_delimiter_`
++
+is a delimiter to split a `_source-string_`.
++
+The delimiter can contain multiple characters, not just a single character. 
Multiple characters are considered as a whole, not individually. For example, 
if the delimiter is "coder", then the source-string is split around "coder" 
rather than "c", "o", "d", "e" and "r".
++
+NOTE: The `_delimiter_` cannot be NULL. 
++
+NOTE: The function counts from the first `_delimiter_` if the `_delimiter_` 
appears more than once in the souce-string.
++
+Example
++
+```
+SQL>SELECT SPLIT_PART ('technical writer','t',2) FROM DUAL;
+
+(EXPR)
+------------------------
+echnical wri            
+
+--- 1 row(s) selected. 
+```
++
+NOTE: The function returns an empty string if the `_delimiter_` does not exist 
in the souce-string.
++
+Example
++
+```
+SQL>SELECT SPLIT_PART ('technical_writer','@_@',1) FROM DUAL;
+
+(EXPR)
+----------------------
+                      
+
+--- 1 row(s) selected.
+```
++
+NOTE: Empty space before of after the `_delimiter_` is served as a valid part 
if the `_source-string_` starts or ends with the `_delimiter_`.
++
+Example
++
+```
+SQL>SELECT SPLIT_PART ('|t|e|c|h|n|i|c|a|l', '|', 1), SPLIT_PART 
('|w|r|i|t|e|r|', '|', 8) FROM DUAL;
+
+(EXPR)             (EXPR)       
+------------------ -------------
+                                
+
+--- 1 row(s) selected.
+```
+
+* `_filed-position_`
++
+is the n^th^ part of the `_souce-string_` to return.
++
+NOTE: The `_filed-position_` must be an integer greater than 0.
++
+NOTE: The `_filed-position_` cannot be NULL.
++
+NOTE: The function returns an empty string if the `_filed-position_` exceeds 
the number of `_souce-string_` parts after splitting.
++
+Example 
++
+```
+SQL>SELECT SPLIT_PART ('technical writer',' ',3) FROM DUAL;
+
+(EXPR)
+----------------
+                
+
+--- 1 row(s) selected.
+```
+
+[[considertaion_for_split_part]]
+=== Considertaion for SPLIT_PART
+
+This function returns an empty string if any parameter is NULL.
 
 Review comment:
   I found this was not true. If NULL is supplied for any parameter, we get 
error 4097, as you described above. If I have a nullable column, and one of the 
rows has a null value in that column, I found that SPLIT_PART returned a null 
value instead. (This surprised me, actually; I would expect that 
split_part(null,'x',3) would have the same behavior as split_part(col1,'x',3) 
if col1 happens to be null. I think that is a bug.)

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to