Sql 公共表表达式给定错误
假设您指的是错误消息: 关键字“with”附近的语法不正确。如果此语句是公共表表达式、xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止 然后照它说的去做;使用分号终止上一个表达式Sql 公共表表达式给定错误,sql,common-table-expression,Sql,Common Table Expression,假设您指的是错误消息: 关键字“with”附近的语法不正确。如果此语句是公共表表达式、xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止 然后照它说的去做;使用分号终止上一个表达式 DECLARE @UDFLabel1 VARCHAR(50), @UDFLabel2 VARCHAR(50), @UDFLabel3 VARCHAR(50), @UDFLabel4 VARCHAR(50), @UDFLabel
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
很重要,并且使其工作
不过,我想我应该在这个场景中使用一个表变量(或类似的变量)
[snip]
WHERE DS.DataSourceID=@DataSourceID
;
WITH UDFLabel ( ID, Label )
AS ( SELECT 1, @UDFLabel1
UNION
[snip]