Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 是否尝试在查询中获取一行?_Tsql - Fatal编程技术网

Tsql 是否尝试在查询中获取一行?

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语句中获得一条记录,我应该把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) 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,但我只返回基于查询的货币