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函数的数据类型。我认为这是一个更好的版本。 –