在你的情況下,功能適用,以獲取日期。
模式對你的情況(假設它爲您的實際表)
CREATE TABLE #TAB (DATEINXML VARCHAR(MAX))
INSERT INTO #TAB
SELECT '<udf><udf_date_induction>2013-11-19</udf_date_induction>'
UNION ALL
SELECT '<udf><udf_date_induction>2014-12-20</udf_date_induction>'
UNION ALL
SELECT '<udf><udf_date_induction>2015-01-21</udf_date_induction>'
UNION ALL
SELECT '<udf><udf_date_induction>2016-02-22</udf_date_induction>'
所以數據出現在表格中的
+----------------------------------------------------------+
| DATEINXML |
+----------------------------------------------------------+
| <udf><udf_date_induction>2013-11-19</udf_date_induction> |
| <udf><udf_date_induction>2014-12-20</udf_date_induction> |
| <udf><udf_date_induction>2015-01-21</udf_date_induction> |
| <udf><udf_date_induction>2016-02-22</udf_date_induction> |
+----------------------------------------------------------+
現在創建一個用戶自定義函數將接受您的專欄,並給予來自xml部分的日期。 (我用遞歸CTE與所用的東西功能)
CREATE FUNCTION [dbo].[FN_GETDATEFROMXML](@VAR VARCHAR(MAX)) RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @DATA VARCHAR(50)
;WITH CTE AS(
SELECT 1 AS START,CHARINDEX('<',@VAR,1) FIRST_IND,CHARINDEX('>',@VAR,1) SECOND_IND , STUFF(@VAR,CHARINDEX('<',@VAR,1),CHARINDEX('>',@VAR,1),'') AS DATA
UNION ALL
SELECT CAST(SECOND_IND+1 AS INT),CHARINDEX('<',DATA,1) FIRST_IND,CHARINDEX('>',DATA,1) SECOND_IND , STUFF(DATA,CHARINDEX('<',DATA,1),CHARINDEX('>',DATA,1),'') DATA FROM CTE
WHERE CHARINDEX('<',DATA,1) <>0
)
SELECT @DATA= DATA FROM CTE WHERE START= (SELECT MAX(START) FROM CTE)
RETURN @DATA
END
現在調用這個UDF你的表列像下面
SELECT DATEINXML, DBO.[FN_GETDATEFROMXML](DATEINXML) AS DATE_FROM_XML FROM #TAB
結果將是
+----------------------------------------------------------+---------------+
| DATEINXML | DATE_FROM_XML |
+----------------------------------------------------------+---------------+
| <udf><udf_date_induction>2013-11-19</udf_date_induction> | 2013-11-19 |
| <udf><udf_date_induction>2014-12-20</udf_date_induction> | 2014-12-20 |
| <udf><udf_date_induction>2015-01-21</udf_date_induction> | 2015-01-21 |
| <udf><udf_date_induction>2016-02-22</udf_date_induction> | 2016-02-22 |
+----------------------------------------------------------+---------------+
你是什麼版本的SQL使用,並且'UDF'列中的每個條目_always_都具有相同的確切XML標籤嗎? –