场景:
某查询接口 查询sql语句已确定,用该sql语句去查 表 t_strategy_stock 中的数据,但是 表t_strategy_stock 的字段名称和 sql 语句中写死的名称不同。
需求:
查询接口不做改动,sql语句不变,从表 t_strategy_stock 中查出数据。
解决方法:
新建视图,把 表t_strategy_stock 中的字段名称映射成 和查询接口 SQL 语句中相同的名称,然后从视图中查询数据。
1.带字段判断和字符串连接 concat 的例子:
select `t`.`formula_id` AS `gscode`,concat(convert(if((`t`.`market` = 0),'SZ','SH') using utf8),`t`.`code`) AS `gpcode`,`t`.`date` AS `ymd`,`t`.`time` AS `hms`,`t`.`price` AS `price`,`t`.`zdf` AS `zdf`
from `t_strategy_stock` `t`
表 t_strategy_stock :
视图 v_strategy_stock :
2.带字符串截取substr的例子:
select `t`.`formula_id` AS `formula_id`, `t`.`period_type` AS `period_type`, `t`.`ymd` AS `ymd`, if( (convert(substring(`t`.`gpcode`,1,2)using utf8) = 'SZ'), 0,1) AS `gpMarket`, convert(substring(`t`.`gpcode`,3,6)using utf8) AS `gpcode`, `t`.`dayNum` AS `dayNum`
from `signaldata` `t`
表 signaldata:
视图 v_signaldata: