一个SQL面试题

bezant2003 2008-08-04 09:35:28
以下二条语句有什么区别?
1. select * from table
2. select * from table where column1 LIKE '%%' and column2 LIKE '%%' and (column3 LIKE '%%' or column4 LIKE '%%' or column5 LIKE '%%' or column6 LIKE '%%')
谁能帮帮我吗?
...全文
261 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
bezant2003 2008-08-06
  • 打赏
  • 举报
回复
OK,准备结帖了啊.
jacklee_888 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 playwarcraft 的回复:]
可能寫2的人的初衷是想要: column1和column2不為null,同時column3-6至少有一列不為null ?
不過sql有 is not null 來判斷,不曉得猜的對不對
[/Quote]

同意
utpcb 2008-08-05
  • 打赏
  • 举报
回复
1效率

2区分NULL值吧.
lff642 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 peixiaopin 的回复:]
第一个遍历行,直接出来。
第二个遍历行,再拿出 column1 LIKE '%%'进行匹配,成功在匹配column1 LIKE '%%',直到最后。。。

出来结果相同 ,第二个明显效率低。
[/Quote]

嗯 .
playwarcraft 2008-08-05
  • 打赏
  • 举报
回复
可能寫2的人的初衷是想要: column1和column2不為null,同時column3-6至少有一列不為null ?
不過sql有 is not null 來判斷,不曉得猜的對不對
pxpsoft 2008-08-05
  • 打赏
  • 举报
回复
第一个遍历行,直接出来。
第二个遍历行,再拿出 column1 LIKE '%%'进行匹配,成功在匹配column1 LIKE '%%',直到最后。。。

出来结果相同 ,第二个明显效率低。

comszsoft 2008-08-05
  • 打赏
  • 举报
回复
一个会写sql,一个乱写sql
出这个题目的人是不是孔乙己啊
xianrenxw 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lucky7_2000 的回复:]
like '%%' 和like '%' 效果是一样的.

我觉得除非table中有字段的值是null,否则两个语句没什么区别.
[/Quote]

模糊查询!
alisafan123 2008-08-05
  • 打赏
  • 举报
回复
区分NULL值.
wlovew 2008-08-05
  • 打赏
  • 举报
回复
把他放查询分析器里运行一下看看结果。。
三断笛 2008-08-05
  • 打赏
  • 举报
回复
区分NULL值吧.
zhiguo2008 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhangcunhua 的回复:]
同意13楼
[/Quote]

支持
szflower 2008-08-05
  • 打赏
  • 举报
回复
column1 LIKE '%%' 等价于column1 is not null
nghf102 2008-08-05
  • 打赏
  • 举报
回复
17楼已经给出结果了
cyousor 2008-08-05
  • 打赏
  • 举报
回复
同意13楼
cyousor 2008-08-05
  • 打赏
  • 举报
回复
create table duixiang (対象年度 char(4),対象年月 char(6),職員番号 char(10),対象年月日 char(8))
insert into duixiang
select 2005, 200608,'0000000001','19910101' union
select 2006, 200606,'0000000001','19910101' union
select 2006, 200607,'0000000001','19910101' union
select 2006, 200610,'0000000001','19920101' union
select 2006, 200612,'0000000001','19930101'
insert into duixiang values( 2006,null,'','')
insert into duixiang values( null,2006,'','')
insert into duixiang values( 2006,2006,null,'')
insert into duixiang values( 2006,2006,'',null)
insert into duixiang values( 2006,2006,null,null)

select * from duixiang
select * from duixiang where 対象年度 like'%%' and 対象年月 like'%%' and(職員番号 like '%%' or 対象年月日 like '%%')
cyousor 2008-08-05
  • 打赏
  • 举报
回复
create table zhiji(支給年月 char(6), 職員番号 char(10))
insert into zhiji
select '200609','0000000001' union
select '200610','0000000001' union
select '200611','0000000001' union
select '200612','0000000001'

create table duixiang (対象年度 char(4),対象年月 char(6),職員番号 char(10),対象年月日 char(8))
insert into duixiang
select 2005, 200608,'0000000001','19910101' union
select 2006, 200606,'0000000001','19910101' union
select 2006, 200607,'0000000001','19910101' union
select 2006, 200610,'0000000001','19920101' union
select 2006, 200612,'0000000001','19930101' union
insert into duixiang values( 2006,null,'','')


select * from duixiang
select * from duixiang where 対象年度 like'%%' and 対象年月 like'%%' and(職員番号 like '%%' or 対象年月日 like '%%')


対象年度 対象年月 職員番号 対象年月日
2005 200608 0000000001 19910101
2006 200606 0000000001 19910101
2006 200607 0000000001 19910101
2006 200610 0000000001 19920101
2006 200612 0000000001 19930101
2006 200612
2006

(7 件処理されました)

対象年度 対象年月 職員番号 対象年月日
2005 200608 0000000001 19910101
2006 200606 0000000001 19910101
2006 200607 0000000001 19910101
2006 200610 0000000001 19920101
2006 200612 0000000001 19930101
2006 200612

(6 件処理されました)

LIHY70 2008-08-05
  • 打赏
  • 举报
回复
区分null值的
wwwtyb 2008-08-04
  • 打赏
  • 举报
回复
like '%%' 和like '%' 效果是一样的.

我觉得除非table中有字段的值是null,否则两个语句没什么区别.
Kurt_Yang_SH 2008-08-04
  • 打赏
  • 举报
回复
like '%%' 和like '%' 效果是一样的.

我觉得除非table中有字段的值是null,否则两个语句没什么区别.
加载更多回复(4)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧