问一个SQL语句的问题,关于检索条件里的括号

makeitbetter 2005-09-26 10:41:45
像下面一段的SQL语句,最后几个条件里的括号是什么意思啊,如果不加括号,结果会有什么差别?请指教。
SELECT ........
FROM .........
WHERE
b_t408.kaisha_code = i_kaisha_code
AND b_t408.keijonengetsu = i_batch_shori_ym
AND b_t408.sousai_haifu_kbn = '1'
AND b_t408.syukei_kbn = '0'
AND ( b_t408.keijoshiharai_kbn = '1'
AND b_t408.keiyakushubetsu = '2'
OR b_t408.keijoshiharai_kbn = '2'
AND b_t408.keiyakushubetsu = '1'
OR b_t408.keijoshiharai_kbn = '1'
AND b_t408.keiyakushubetsu = '4'
AND b_t408.choshu_kbn = '2')
...全文
171 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
超叔csdn 2005-09-26
  • 打赏
  • 举报
回复 1
AND 的优先级比OR 要高,所以先做AND 再做OR.
b_t408.kaisha_code = i_kaisha_code
AND b_t408.keijonengetsu = i_batch_shori_ym
AND b_t408.sousai_haifu_kbn = '1'
AND b_t408.syukei_kbn = '0'
AND ( b_t408.keijoshiharai_kbn = '1'
AND b_t408.keiyakushubetsu = '2'
OR b_t408.keijoshiharai_kbn = '2'
AND b_t408.keiyakushubetsu = '1'
OR b_t408.keijoshiharai_kbn = '1'
AND b_t408.keiyakushubetsu = '4'
AND b_t408.choshu_kbn = '2')
相当于
b_t408.kaisha_code = i_kaisha_code
AND b_t408.keijonengetsu = i_batch_shori_ym
AND b_t408.sousai_haifu_kbn = '1'
AND b_t408.syukei_kbn = '0'
AND b_t408.keijoshiharai_kbn = '1'
AND b_t408.keiyakushubetsu = '2'
OR b_t408.kaisha_code = i_kaisha_code
AND b_t408.keijonengetsu = i_batch_shori_ym
AND b_t408.sousai_haifu_kbn = '1'
AND b_t408.syukei_kbn = '0'
and b_t408.keijoshiharai_kbn = '2'
AND b_t408.keiyakushubetsu = '1'
OR b_t408.kaisha_code = i_kaisha_code
AND b_t408.keijonengetsu = i_batch_shori_ym
AND b_t408.sousai_haifu_kbn = '1'
AND b_t408.syukei_kbn = '0'
and b_t408.keijoshiharai_kbn = '1'
AND b_t408.keiyakushubetsu = '4'
AND b_t408.choshu_kbn = '2'
makeitbetter 2005-09-26
  • 打赏
  • 举报
回复
sbaz(万神渡劫):
谢谢你。看来一个括号能省很多事^^

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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