首頁  >  文章  >  資料庫  >  如何在SQL Server中實作MySQL的SUBSTRING_INDEX()函數的功能?

如何在SQL Server中實作MySQL的SUBSTRING_INDEX()函數的功能?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-21 13:12:10932瀏覽

How to achieve the functionality of MySQL's SUBSTRING_INDEX() function in SQL Server?

MySQL SUBSTRING_INDEX 函數的SQL Server 等效項

MySQL 的SUBSTRING_INDEX() 函數在指定的分隔符號出現之前提取子字串部分。要在 SQL Server 中實作類似的功能,可以使用多種方法。

T-SQL 標量函數:

利用 T-SQL 和 XQuery 將字串分解為 XML 行並提取與所需分隔符號相符的行。

TSQL 內聯值函數:

定義一個內聯值表,該表根據指定分隔符號匹配的數量傳回結果,類似於T-SQL 標量函數,但採用表格形式。

用法範例:

T-SQL 標量函數:

CREATE FUNCTION dbo.SUBSTRING_INDEX
(
    @str NVARCHAR(4000),
    @delim NVARCHAR(1),
    @count INT
)
RETURNS NVARCHAR(4000)
WITH SCHEMABINDING
AS
BEGIN
    /* T-SQL Scalar Function Code */
END;

SELECT dbo.SUBSTRING_INDEX(N'www.somewebsite.com', N'.', 2);

TSQL 內聯表值函數:

CREATE FUNCTION dbo.SUBSTRING_INDEX
(
    @str NVARCHAR(4000),
    @delim NVARCHAR(1),
    @count INT
)
RETURNS TABLE
AS RETURN
    /* TSQL Inline Table-Valued Function Code */

SELECT  *
FROM    (
    SELECT N'www.somewebsite.com' UNION ALL 
    SELECT N'www.yahoo.com' UNION ALL 
    SELECT N'www.outlook.com'
) a(Value)
CROSS APPLY dbo.SUBSTRING_INDEX(a.Value, N'.', 2) b;

以上是如何在SQL Server中實作MySQL的SUBSTRING_INDEX()函數的功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn