Sql server 2008 将表列传递给函数参数的SQL
我想用列表U.UbicacionF调用我的函数dbo.Split,但它不起作用!请你能帮我吗!!谢谢Sql server 2008 将表列传递给函数参数的SQL,sql-server-2008,function,parameters,Sql Server 2008,Function,Parameters,我想用列表U.UbicacionF调用我的函数dbo.Split,但它不起作用!请你能帮我吗!!谢谢 SELECT EE.IDEstatus, EE.IDAsignacion,EE.IDUNIDAD, EE.IDEQUIPO,EE.ESTATUS,EE.bUltEstatus, A.IDDestino, U.UbicacionF, TI.Tiempo FROM mar_EstatusEquipo EE LEFT JOIN mar_Asigna
SELECT
EE.IDEstatus, EE.IDAsignacion,EE.IDUNIDAD,
EE.IDEQUIPO,EE.ESTATUS,EE.bUltEstatus,
A.IDDestino, U.UbicacionF, TI.Tiempo
FROM
mar_EstatusEquipo EE
LEFT JOIN
mar_Asignaciones A ON EE.IDAsignacion = A.IDAsignacion
AND EE.IDUNIDAD = A.IDUNIDAD
LEFT JOIN
mar_TmpUbicaciones U ON EE.IDUNIDAD = U.IdUnidad AND U.IdUnidad = A.IDUNIDAD
LEFT JOIN
mar_TiemposArriboPto TI ON A.IDDestino = TI.Destino
AND TI.Ubicacion LIKE '%' + (SELECT *
FROM dbo.Split(U.UbicacionF, ',', '1')) + '%'
WHERE
EE.IDEquipo = CAST(EE.IDUNIDAD AS CHAR)
AND EE.Estatus IN ('IT','ET')
AND A.IDDestino = 'MZO'
AND EE.bUltEstatus = 1
AND EE.IDUNIDAD = 255
ORDER BY
EE.IDUNIDAD
可以使用运算符将列传递给这样的表值函数。在您的情况下,与其交叉应用,不如采用外部应用,以匹配当前的外部连接逻辑:
SELECT
EE.IDEstatus, EE.IDAsignacion,EE.IDUNIDAD,
EE.IDEQUIPO,EE.ESTATUS,EE.bUltEstatus,
A.IDDestino, U.UbicacionF, TI.Tiempo
FROM
dbo.mar_EstatusEquipo EE
LEFT JOIN
dbo.mar_Asignaciones A ON EE.IDAsignacion = A.IDAsignacion
AND EE.IDUNIDAD = A.IDUNIDAD
LEFT JOIN
dbo.mar_TmpUbicaciones U ON EE.IDUNIDAD = U.IdUnidad AND U.IdUnidad = A.IDUNIDAD
OUTER APPLY (
SELECT t.Tiempo
FROM
dbo.mar_TiemposArriboPto AS t
INNER JOIN
dbo.Split(U.UbicacionF, ',', '1') AS s ON t.Ubicacion LIKE '%' + s.Value + '%'
) AS TI
WHERE
EE.IDEquipo = CAST(EE.IDUNIDAD AS CHAR)
AND EE.Estatus IN ('IT','ET')
AND A.IDDestino = 'MZO'
AND EE.bUltEstatus = 1
AND EE.IDUNIDAD = 255
ORDER BY
EE.IDUNIDAD
;
尝试时出现的错误消息/问题是什么?它不起作用不是对问题的非常准确的描述。