Tsql 是否尝试在查询中获取一行?
我试图在case语句中获得一条记录,我应该把seelect语句放在哪里Tsql 是否尝试在查询中获取一行?,tsql,Tsql,我试图在case语句中获得一条记录,我应该把seelect语句放在哪里 CASE WHEN CAST(VehicleCC AS MONEY) BETWEEN -1 AND 50 THEN '33.94' WHEN CAST(VehicleCC AS MONEY) BETWEEN 51 AND 125 THEN '39.65' WHEN CAST(VehicleCC AS MONEY) B
CASE WHEN CAST(VehicleCC AS MONEY) BETWEEN -1 AND 50 THEN '33.94'
WHEN CAST(VehicleCC AS MONEY) BETWEEN 51 AND 125 THEN '39.65'
WHEN CAST(VehicleCC AS MONEY) BETWEEN 126 AND 500 THEN '55.90'
WHEN CAST(VehicleCC AS MONEY) BETWEEN 501 AND 650 THEN '67.31'
WHEN CAST(VehicleCC AS MONEY) BETWEEN 651 AND 1000 THEN '78.65'
WHEN CAST(VehicleCC AS MONEY ) > 1001 THEN '79.85'
else
(SELECT TOP(1) cast (VehicleCC as varchar (50)) FROM HIRE_INSTRUCTION HIRP
INNER JOIN VEHICLE VEH ON HIRP.FKFleetVehicleID=VEH.vehicleid
WHERE HIRP.FKBLDRefID=cl.FKBLDRefID AND HIRP.Deleted=0 AND VEH.Deleted=0
ORDER BY veh.VehicleCC DESC) END AS [Hire Rate Charged Per Day],
如果TOP1不起作用,请尝试排名:
SELECT VehicleCC
FROM (
SELECT CAST(VEH.VehicleCC as varchar (50)),
RANK() OVER(ORDER BY CAST(VEH.VehicleCC as varchar (50))) AS CCRank
FROM HIRE_INSTRUCTION HIRP
INNER JOIN VEHICLE VEH
ON HIRP.FKFleetVehicleID=VEH.vehicleid
WHERE HIRP.FKBLDRefID=cl.FKBLDRefID
AND HIRP.Deleted=0
AND VEH.Deleted=0
ORDER BY veh.VehicleCC DESC
) CC
WHERE CCRank = 1
可以使用set rowcount限制查询返回的行数
set rowcount 1 -- the query will return one record
select * from table
set rowcount 0 --back to normal
使用限制1请参见此处OP所说的tsql,这意味着MS SQL Server。我不相信SQL Server中存在限制。VehicleC的值是多少?选择TOP1应该返回1条记录我有一个vehicle表,其中包含客户、第三方、租用车辆,当租用车辆时,有时它们可能会交换为另一个,所以我在这些值之间对VehicleC进行分级,尽管数据类型是int,但我只返回基于查询的货币