1
我需要以下方面的幫助,因爲我對SQL中XML的知識不存在。以下是生成表格和數據的表格腳本。TSQL XML FUNCTION
在XML中有一個名稱屬性爲「RequiredField」的XML元素,我需要創建一個TSQL函數來返回value屬性中包含的值。 請任何人都可以協助。
CREATE TABLE [MyTable]
([UniqueID] INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
[Description] VARCHAR(50) NOT NULL,
[MetaData] XML NOT NULL)
INSERT INTO [MyTable]
([Description], [MetaData])
SELECT 'My Description 1', '<properties xmlns="http://schemas.myschema.com/propertyInfo/additionalPropertyInfo.xsd"><item name="PropertyName" value="Property1" /><item name="RequiredField" value="true" /></properties>'
UNION
SELECT 'My Description 2', '<properties xmlns="http://schemas.myschema.com/propertyInfo/additionalPropertyInfo.xsd"><item name="PropertyName" value="Property2" /></properties>'
正如你所看到的第二行不包含該元素,所以它應該返回一個空值。 我似乎在查詢的圈子裏跑來跑去,除了命名空間部分還沒有取得很大的進展,但即使是我不知道是正確的。
所以沿着這個
CREATE FUNCTION GetRequiredFieldValue(@uniqueID INT)
RETURNS BIT
AS
...
絕對完美的,太感謝你了! –
我無法相信它實際上很簡單,我寫的查詢要複雜得多,現在謝謝你,我對TSQL中的XML實現有了更好的理解。所以再一次,謝謝。 –
@Jonathan有點改變了XPath,所以你可以指定'bit'作爲values函數的數據類型。我認爲這是一個更好的版本。 –