首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库sqlselect话语

2012-10-09 
数据库sqlselect语句server2008执行select * from表名whereid1 like %%and id2 like %%为啥没有记录被

数据库sqlselect语句
server2008 执行
select * from 表名 where id1 like '%%'and id2 like '%%'为啥没有记录被选中
而当执行select * from 表名 where id1 like '%%'
或者执行select * from 表名 where id2 like '%%'
时,全部记录都能选择


[解决办法]

SQL code
--> 测试数据:[tbl]if object_id('[tbl]') is not null drop table [tbl]create table [tbl]([ID] int,[Code] int)insert [tbl]select 1,123 union allselect 2,123 union allselect 4,123 union allselect 6,1234 union allselect 7,1234--1select * from tbl where ltrim(Code) like '%%'/*ID    Code1    1232    1234    1236    12347    1234*/--2select * from tbl where ltrim([ID]) like '%%'/*ID    Code1    1232    1234    1236    12347    1234*/--3select * from tbl where ltrim(Code) like '%%' and ltrim([ID]) like '%%'/*ID    Code1    1232    1234    1236    12347    1234*/--本机测试(MSSQL2008 开发版)结果为全部都显示出来,跟你所说的偏差
[解决办法]
你要得是同时满足你的两个条件?
id1 like '%%'and id2 like '%%'


[解决办法]
不会出现楼主的情况,楼主看一下执行计划
[解决办法]
写法上有点哆嗦

直接用一个%就行了
[解决办法]
开卷有益
[解决办法]
我在MSSQL2008R2测试,没有出现楼主的情况。楼主不如给出详细数据表结构和记录看看。
[解决办法]
你的逻辑是需要同时满足那两个条件,而你分开写只是满足其中一个条件的况,实际相当于“or”而不是“and"

[解决办法]
lz:基于你的问题的解答是:
你的语句
select * from 表名 where id1 like '%%' and id2 like '%%'
从语句看你的条件是且的关系,也就是说必须同时满足2个条件。
你可以这样呀(下面的分解法和你的语句是一个道理)
先:select * into #a from 表名 where id1 like '%%'
再:select * from #a where id2 like '%%'
如果没有记录那就说明你的表中没有同时满足2个条件的。

希望lz成功。






热点排行
Bad Request.