2 defyfly defyfly 于 2013.06.25 10:34 提问

询问一个SQL如何实现判断查询的问题

这是我现在的语句
strSql2.Append("SELECT a.SystemContractID, a.Income, a.TotalMargin, a.UserCode,a.StrategyID, b.StrategyName FROM OrderProfit_History as a INNER JOIN Strategy as b ON a.StrategyID = b.StrategyID");
OrderProfit_History表中和Strategy 表中都有StrategyID,但是只有Strategy 表中的
StrategyID 有对应的StrategyName,并且OrderProfit_History表中有Strategy 表所没有的StrategyID。现在的语句执行结果是,返回OrderProfit_History表中所有的StrategyID 在Strategy 表中存在的数据,并显示对应的StrategyName。
我下面想实现的是,显示OrderProfit_History表中所有的数据,如果StrategyID 在Strategy 表中存在,就显示StrategyName ,反之,则没有对应的StrategyName ,那就
在StrategyName 项中用StrategyID 替代吧。
表达的应该清楚了吧,本人对SQL不是很懂,不知道我说的这个逻辑能不能用一条SQL语句实现?

1个回答

en_joker
en_joker   2017.11.08 09:00

1、以OrderPofit_History表为主表,进行做关联。
2、在select语句中用case when 子句判断StrategyName是否为空,非空显示StrategyName,为空显示StrategyId填充。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!