Pivot中的SQL转换
我有一个大的长视图查询,我正试图创建如下:Pivot中的SQL转换,sql,sql-server,view,pivot,Sql,Sql Server,View,Pivot,我有一个大的长视图查询,我正试图创建如下: CREATE VIEW [iFix].[UF90NIRHistorian] AS SELECT PARSENAME(TagName,2) As [TagName], CONVERT(DATETIME,[TimeStamp]) As [TimeStamp], CONVERT(FLOAT,Value) As [Value] FROM
CREATE VIEW [iFix].[UF90NIRHistorian]
AS
SELECT
PARSENAME(TagName,2) As [TagName],
CONVERT(DATETIME,[TimeStamp]) As [TimeStamp],
CONVERT(FLOAT,Value) As [Value]
FROM OPENQUERY(IFIX_HISTORIAN,
'
SET
StartTime={ts ''2014-02-06 00:00:00''},
SamplingMode=Calculated,
CalculationMode=Average,
IntervalMilliseconds=1Hour,
RowCount=0
SELECT * FROM ihRawData WHERE
TagName LIKE *.UF90n_TS_SP.F_CV OR
TagName LIKE *.UF90n_DMB_SP.F_CV OR
TagName LIKE *.SW_U680_01.F_CV OR
TagName LIKE *.PD_U680_01.F_CV OR
TagName LIKE *.FW_U680_01.F_CV
')
PIVOT(
AVG(CONVERT(FLOAT,Value) As Value)
FOR [TagName] In (
[UF90n_DMB_SP],
[UF90N_TS_SP],
[SW_U680_01],
[PD_U680_01],
[FW_U680_01])
) AS p
当我试图将Value列从字符串转换为float时,PIVOT命令后面的行出现语法错误。如果我创建没有轴的视图,然后将其结果作为第二个视图轴,则此错误将消失。是否有任何方法可以将其保留为一个视图并修复该语法错误?如果要在select中转换值字段,那么为什么需要在pivot语句中再次转换它?我在我的一个表中尝试了一个类似的pivot语句,将所选值转换为另一种类型后,再以它为轴心,效果很好。也许我遗漏了一些东西,但似乎不需要您的第二次转换。您真的可以发布错误消息吗?您不能在该位置应用转换AVGCONVERTFLOAT,Value As Value。您必须在应用平均值之前转换数据。错误消息是:关键字“convert”附近的语法不正确。如果不进行转换,我会收到一个错误,说我无法平均varchar。我还尝试在select语句中重命名该列,但出现了一个错误,说明它找不到该列。