作者:绿色风
分类:
时间:2022-08-18
浏览:113
楼主 DJ_Soo |
Q:如何查询"数据表"中单位为'支'或者'只'的数据?为何我写以下的语句是错的?(得到所有的单位)- SELECT * FROM [数据表$] where 单位 like '只' or '支'
A:首先说明,上面的语句中存在错误,而错在哪里,我们等会儿来看,我们先写出三种正确答案: 1.- Select * from [数据表$] where 单位 in('只','支')
2.- Select * from [数据表$] where 单位='只' or 单位='支'
3.- SELECT * FROM [数据表$] where 单位 like '[只支]'
in用法应该是最常用的多个字符匹配的用法.而如果要用or的时候,用第2种方法的时候要分别写:单位='只' or 单位='支' 而如果用like代替等于号"="也应该用这种方法单位 like '只' or 单位 like '支' 而第三种方法用了like '[只支]',实际上限制了只对单位长度为1的字符进行判断,其中也有"或"的存在(在[]中的两个字符间有"或"运算) 这样,我们转回头来看知道了开始写的语句是哪里出错了,但是为什么结果得到的是所有的单位呢? 其实既然知道了表达有误,我们就知道刚才的语句是可以拆分开的了: SELECT * FROM [数据表$] where 单位 like '只' or '支' 这样,其实就是对单位是'只'这个条件和'支'这个条件进行判断.而我们如果将单位的判断去掉:- SELECT * FROM [数据表$] where '支'
这样写的话,其实效果一样,得到所有单位,大胆猜测一下,这个'支'大概在其中被翻译为True. 结合我另一个帖子的理解,就明白为什么之前的语句得到了所有的单位了: [SQL in Excel] 由Select语句获取所有字段名http://www.exceltip.net/thread-9666-1-1.html SQL中字符的匹配.rar |
2楼 lrlxxqxa |
在[]中的两个字符间有"或"运算,学习了 |
3楼 tobeso |
kankan............. |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一