STUFF Function in SQL Server with Example

watch_later
menu_book Table of Contents expand_more

    SQL Server provides various built-in functions to manipulate and process data efficiently. One such function is the STUFF function, which is commonly used to modify string values by inserting or replacing a portion of the string. This article explores the STUFF function in SQL Server with detailed explanations, syntax, examples, and practical use cases.

    For a more detailed explanation, you can refer to SQL Server STUFF() Function With Example.

    What is the STUFF Function in SQL Server?

    The STUFF function in SQL Server is used to delete a specified length of characters from a given string and then insert another string at the specified position. This function is particularly useful in scenarios where string modification is required.

    Syntax of STUFF Function

    STUFF (original_string, start_position, length_to_delete, string_to_insert)
    

    Parameters:

    • original_string: The string in which modifications will be made.
    • start_position: The position in the string where the modification begins.
    • length_to_delete: The number of characters to delete from the original string.
    • string_to_insert: The new string to be inserted at the specified position.

    STUFF Function Example in SQL Server

    Basic Example:

    Let's replace a portion of a string using the STUFF function.

    SELECT STUFF('Hello Nikunj Satasiya', 7, 6, 'World') AS ModifiedString;
    

    Output:

    ModifiedString
    Hello World Satasiya

    Explanation:

    • The function starts modifying from position 7.
    • It deletes 6 characters (Nikunj).
    • It inserts 'World', resulting in 'Hello World Satasiya'.

    Using STUFF Function with Table Data

    Consider a table named Authors with the following data:

    AuthorID Name
    1 Nikunj Satasiya
    2 John Doe
    3 Jane Smith

    We need to update author names by replacing the last name with 'Updated'.

    SELECT AuthorID, STUFF(Name, CHARINDEX(' ', Name) + 1, LEN(Name) - CHARINDEX(' ', Name), 'Updated') AS ModifiedName
    FROM Authors;

    Output:

    AuthorID ModifiedName
    1 Nikunj Updated
    2 John Updated
    3 Jane Updated

    Explanation:

    • CHARINDEX(' ', Name) finds the position of the space.
    • The function replaces the last name with 'Updated'.

    Practical Use Cases of STUFF Function

    1. Formatting Phone Numbers

    SELECT STUFF(STUFF('9999999999', 4, 0, '-'), 8, 0, '-') AS FormattedNumber;
    

    Output:

    FormattedNumber
    999-999-9999

    2. Removing and Inserting Characters in Usernames

    SELECT STUFF('nikunj_satasiya_123', 7, 9, 'admin') AS ModifiedUsername;
    

    Output:

    ModifiedUsername
    nikunj_admin_123

    3. Generating Comma-Separated Values

    We can use STUFF to generate a CSV list of values:

    SELECT STUFF((SELECT ',' + Name FROM Authors FOR XML PATH('')), 1, 1, '') AS AuthorList;
    

    Output:

    AuthorList
    Nikunj Satasiya,John Doe,Jane Smith

    For similar string manipulation techniques, check out:

    Difference Between STUFF and REPLACE Functions

    Feature STUFF REPLACE
    Modifies part of a string Yes Yes
    Deletes specific characters Yes No
    Inserts new characters Yes No
    Works with dynamic positions Yes No

    Conclusion

    The STUFF function in SQL Server is a powerful tool for modifying string data by removing and inserting characters dynamically. It is widely used in formatting, data manipulation, and generating structured outputs. By understanding and implementing STUFF in various scenarios, SQL developers can enhance their query capabilities and improve data processing efficiency.

    Codingvila provides articles and blogs on web and software development for beginners as well as free Academic projects for final year students in Asp.Net, MVC, C#, Vb.Net, SQL Server, Angular Js, Android, PHP, Java, Python, Desktop Software Application and etc.

    If you have any questions, contact us on info.codingvila@gmail.com

    sentiment_satisfied Emoticon