我在查询分析器里,输入这条sql语句select * from d_retail where left(retailid,16)='PSZY05-2006-6-29',结果只显示一条数据,显示只是29号的第一条数据,而我想显示6月29号的所有数据。在此想问一下,这是怎么回事,是这条语句不完整,还是什么其它原因。请各位高手指点。谢谢!
你拿'PSZY05-2006-6-29'那么长的字串去匹配,获得的纪录当然不会多请给出retailid的完整格式
语句好象看不出什么问题来,不知道retailid字段里的内容前面是否会有空格存在.添加个ltrim()试试.left(ltrim(retailid),16)='PSZY05-2006-6-29'还有就是确保29号有不止一条记录.数据格式为:PSZY05-yyyy-mm-dd,月份6与06的区别等.
如果PSZY05长度不确定那么用substring(retailid,charindex('-',retailid)+1,10)='2006-06-29'不管哪种写法,效率上都不会高