Sql 按语句排序
我想为下面的查询订购ASC中的时间。我尝试在WHERE子句之后添加ORDERBY,但由于使用了join语句,因此无法得到结果。我在这里添加了完整的sql查询Sql 按语句排序,sql,tsql,Sql,Tsql,我想为下面的查询订购ASC中的时间。我尝试在WHERE子句之后添加ORDERBY,但由于使用了join语句,因此无法得到结果。我在这里添加了完整的sql查询 ALTER PROCEDURE [dbo].[USP_GetFlightInfo] ( @Origin NVARCHAR(50)=null, @Destination NVARCHAR(50)=null, @FlightNo NVARCHAR(50)= null ) AS BEGIN SET
ALTER PROCEDURE [dbo].[USP_GetFlightInfo]
(
@Origin NVARCHAR(50)=null,
@Destination NVARCHAR(50)=null,
@FlightNo NVARCHAR(50)= null
)
AS
BEGIN
SET NOCOUNT ON;
IF @FlightNo IS NULL
(
SELECT tfs.FlightNo,tfs.Origin,tfs.Destination,tfs.[Time],tfs.RevisedTime,tfSSS.DescriptionName, tfSS.FlightStatus from tblFlightSchedule tfs
INNER JOIN tblFlightStatus tfSS ON tfs.FSId= tfSS.FSId
LEFT OUTER JOIN tblFlightStatusDescription tfSSS ON tfSSS.FSDId= tfs.FSDId
where tfs.Origin=@Origin and tfs.Destination =@Destination
ORDER BY tfs.[Time];
)
ELSE IF @FlightNo IS NOT NULL
(
SELECT tfs.FlightNo,tfs.Origin,tfs.Destination,tfs.[Time],tfs.RevisedTime,tfSSS.DescriptionName, tfSS.FlightStatus from tblFlightSchedule tfs
INNER JOIN tblFlightStatus tfSS ON tfs.FSId= tfSS.FSId
LEFT OUTER JOIN tblFlightStatusDescription tfSSS ON tfSSS.FSDId= tfs.FSDId
where tfs.Origin=@Origin and tfs.Destination =@Destination and tfs.FlightNo=@FlightNo and tfs.FlightNo =@FlightNo
ORDER BY tfs.[Time];
)
END
只要说:
SELECT tfs.FlightNo,tfs.Origin,tfs.Destination,tfs.[Time],tfs.RevisedTime,
tfSSS.DescriptionName, tfSS.FlightStatus
FROM tblFlightSchedule tfs
INNER JOIN tblFlightStatus tfSS ON tfs.FSId= tfSS.FSId
LEFT OUTER JOIN tblFlightStatusDescription tfSSS ON tfSSS.FSDId= tfs.FSDId
WHERE tfs.Origin=@Origin and
tfs.Destination =@Destination and
(
tfs.FlightNo =@FlightNo or
@FlightNo is null
)
ORDER BY tfs.[Time];
作为存储过程中的代码。不需要使用IF
并复制查询
现有代码中的主要问题是SQL Server使用BEGIN
和END
来括起代码块,而不是括号()
。因此,一个模型应该是这样的:
IF <Something>
BEGIN
--If block
END
ELSE
BEGIN
--Else block
END
IF
开始
--If块
结束
其他的
开始
--Else块
结束
使用按tfs排序的有什么问题。[时间]
?您能显示您尝试的实际查询吗?@TimBiegeleisen Order By附近的语法不正确,应为),UNION或除非我在where条件后按tfs下订单。[Time]我发现您的查询没有任何错误,这让我怀疑产生这个错误的不是你在问题中发布的。你显示的查询没有显示任何语法错误。在没有验证它们是否足够相似以显示您所询问的相同行为之前,不要询问与您的实际查询“类似”的查询。不,您问题中的查询不是。我已经运行过了。通过给我们提供重现您所看到错误的方法,帮助我们帮助您。目前,我们不能。