Select StationNum,ObservationTime,ExMaxWindDirection,ExMaxWindSpeed From tabgeneraldata where ObservationTime between '20070801200000'and '20070802110000' order by ObservationTime查询得表如下:
StationNum ObservationTime ExMaxWindDirection ExMaxWindSpeed
---------- --------------- ------------------ --------------
M1901 20070801200000 257 008
M1901 20070801210000 006 ///
M1901 20070801220000 307 013
M1901 20070801230000 310 010
M1901 20070802000000 284 006
M1901 20070802010000 248 010
M1901 20070802020000 278 008
M1901 20070802030000 314 005
M1901 20070802040000 239 009
M1901 20070802050000 251 010
M1901 20070802060000 241 009
M1901 20070802070000 259 012
M1901 20070802080000 280 010
M1901 20070802090000 248 008
M1901 20070802100000 227 008
M1901 20070802110000 256 010
我现在想找ExMaxWindSpeed中最大的数据并得到最大数据时的ExMaxWindSpeed, ObservationTime .当ExMaxWindSpeed 数据为 ///就出错,该怎么解决?。
我用以下语句查询:
Select a.StationNum,a.ExMaxWindDirection,a.ExMaxWindSpeed,ObservationTime From tabgeneraldata A Where ExMaxWindSpeed=(Select Max(cast(ExMaxWindSpeed as real)) From tabgeneraldata Where StationNum=A.StationNum and ObservationTime between '20070801400000'and '20070802220000') and ObservationTime between '20070801200000'and '20070802220000' Order By A.StationNum
查询得表如下:
StationNum ExMaxWindDirection ExMaxWindSpeed ObservationTime
---------- ------------------ -------------- ---------------
59840 191 037 20070802160000
59852 118 052 20070802150000
59858 142 041 20070802140000
59936 184 038 20070802140000
59944 235 046 20070802130000服务器: 消息 8114,级别 16,状态 5,行 1
将数据类型 varchar 转换为 real 时出错。
IsNumeric会把 D 和 d 判断为数字....