select top 1 ccMileage,ccClearPrice,ccCheckPrice from BS_ClearingChecking
where 1=2
得到的结果是:
ccMileage  ccClearPrice  ccCheckPrice 
如果返回datatable的话应该就是空的了,
我现在想要的结果是这样的 
ccMileage  ccClearPrice  ccCheckPrice 
0                0           0
请问,我该如何改写这条语句

解决方案 »

  1.   

    select 0 ccMileage, 0 ccClearPrice, 0 ccCheckPrice
      

  2.   

    没看懂 数据库是sql server 2005
      

  3.   

    '如果返回datatable的话应该就是空的了'看这句话的意思,楼主是想要在其他编程语言中使用哈!就像C#中的datatable那样获取查询结果!这样写试试 select top 1 rtrim(ccMileage),rtrim(ccClearPrice),rtrim(ccCheckPrice) from BS_ClearingChecking             --这样写 rtrim(ccMileage),把数值改为字符串
    where 1=2     --这个位置感觉不太妥当  条件好像不能成立
      

  4.   

    这样数据返回要求让人很费解,对 BS_ClearingChecking 来说没有返回行集和返回 全“0”的行集完全不是一回事! 在现实世界中这也因该是有不同含义的。
    要是我遇到这样不可理喻的看数据要求,我会这样来应付一下!select top 1 ccMileage,ccClearPrice,ccCheckPrice into #temp from BS_ClearingChecking where 1=2
    if (@@RowCount=0)
        select 0 ccMileage, 0 ccClearPrice, 0 ccCheckPrice
    else
        selecT * from #temp