求一SQL(left join与null相关)

hit040420224 2011-06-23 05:15:55
表MS_GENERAL
KEY_TYPE KEY_VALUE KEY_NAME kEY_DESC
CURRENCY 02 RMB 人民币
CURRENCY 03 JPY 日币
CURRENCY 04 EUR 欧元

SQL:
SELECT c.*
FROM [TB_CWB] c
left join MS_GENERAL g
on g.[KEY_VALUE]=c.PRICE_CUR
where g.[KEY_TYPE]='CURRENCY'

TB_CWB 为运单表
MS_GENERAL 为字典表 含有货币种类字段记录

运单表中含与货币关联的字段PRICE_CUR 但PRICE_CUR值可能为NULL

之上的SQL语句只将PRICE_CUR不为NULL的信息列出来了,如何才能列出所有的
...全文
215 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
流氓兔 2011-06-24
  • 打赏
  • 举报
回复

SELECT c.*
FROM [TB_CWB] c
left join MS_GENERAL g
on g.[KEY_VALUE]=c.PRICE_CUR
where g.[KEY_TYPE]='CURRENCY'


SELECT c.*
FROM [TB_CWB] c
left join MS_GENERAL g
on g.[KEY_VALUE]=c.PRICE_CUR and g.[KEY_TYPE]='CURRENCY'

是有区别的,看看SQL的逻辑执行顺序,记得用这个题还面试过其他人,太多不会的了~
Pro_w 2011-06-23
  • 打赏
  • 举报
回复
楼上两种都可以..
--小F-- 2011-06-23
  • 打赏
  • 举报
回复
SELECT c.* FROM [TB_CWB] c left join MS_GENERAL g on g.[KEY_VALUE]=c.PRICE_CUR and g.[KEY_TYPE]='CURRENCY'
cd731107 2011-06-23
  • 打赏
  • 举报
回复
--where 改为 and ,如下:
SELECT c.*
FROM [TB_CWB] c
left join MS_GENERAL g
on g.[KEY_VALUE]=c.PRICE_CUR
and g.[KEY_TYPE]='CURRENCY'
  • 打赏
  • 举报
回复
right join

34,594

社区成员

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

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