表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的信息列出来了,如何才能列出所有的
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的信息列出来了,如何才能列出所有的
SELECT c.*
FROM [TB_CWB] c
left join MS_GENERAL g
on g.[KEY_VALUE]=c.PRICE_CUR
and g.[KEY_TYPE]='CURRENCY'
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的逻辑执行顺序,记得用这个题还面试过其他人,太多不会的了~