DECLARE @UDFLabel1 VARCHAR(50),
@UDFLabel2 VARCHAR(50),
@UDFLabel3 VARCHAR(50),
@UDFLabel4 VARCHAR(50),
@UDFLabel5 VARCHAR(50)
SELECT @UDFLabel1 = UserDefinedFieldName01,
@UDFLabel2 = UserDefinedFieldName02,
@UDFLabel3 = UserDefinedFieldName03,
@UDFLabel4 = UserDefinedFieldName04,
@UDFLabel5 = UserDefinedFieldName05
FROM DataSourceGroup AS DSG
JOIN DataSource AS DS
ON DS.DataSourceGroupID=DSG.DataSourceGroupID
WHERE DS.DataSourceID=@DataSourceID
WITH UDFLabel ( ID, Label )
AS ( SELECT 1, @UDFLabel1
UNION
SELECT 2, @UDFLabel2
UNION
SELECT 3, @UDFLabel3
UNION
SELECT 4, @UDFLabel4
UNION
SELECT 5, @UDFLabel5
)
SELECT ID, Label
FROM UDFLabel
WHERE Label IS NOT NULL
问问题
3967 次
1 回答
2
假设您的意思是错误消息:
关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。
然后按照它说的去做;使用分号终止前一个表达式...
[snip]
WHERE DS.DataSourceID=@DataSourceID
;
WITH UDFLabel ( ID, Label )
AS ( SELECT 1, @UDFLabel1
UNION
[snip]
这;
很重要,并使其发挥作用。
不过,我想我会在这种情况下使用表变量(或类似变量)。
于 2009-11-14T11:44:53.967 回答