Sunday, February 3, 2013

mssql split function



--user-defined function
CREATE [AGGREGATE] FUNCTION function_name
RETURNS {STRING|INTEGER|REAL|DECIMAL}

--create function
CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

--usage
SELECT SPLIT_STR(string, delimiter, position)

--sample
SELECT SPLIT_STR('a|bb|ccc|dd', '|', 3) as third;
+-------+
| third  |
+-------+
| ccc     |
+-------+

No comments:

Post a Comment