实现方案:先把所有的0都换成空格,然后LTrim,去掉左边的空格,然后再把剩下的空格换成0,还原完美。
/*本查询:根据公司key查出一个指定公司旗下的矿权,包含子矿权*/
SELECT
a.`Property ID`,
a.`Property Name`,
a.`Country Name`,
a.`State/Province`,
a.`Primary Commodity`,
a.`Development Stage`,
trim(replace((concat(a.`Mine Type 1`,' and ',a.`Mine Type 2`,' and ',a.`Mine Type 3`,' ')),'and ','')) as `Mine Type`,
/*两种之间加' and ',结尾加两个空格' ',然后替换掉 and和两个空格'and '。最后trim就可以实现了*/
a.`Activity Status`,
a.`Sub-Property Parent ID`,
a.`Sub-Property Parent Name`,
b.`Current Equity Ownership Percent`,
b.`Current Controlling Ownership Percent`,
REPLACE( LTRIM( REPLACE ( concat(a.`Sub-Property Parent ID`,a.`Property ID`), 0, ' ' ) ), ' ', 0 ) AS o
/*这个排序字段十分的神奇,偶得。按它排序,可以实现父矿权和子矿权挨着显示。
实现方案:先把所有的0都换成空格,然后LTrim,去掉左边的空格,然后再把剩下的空格换成0,还原完美*/
from mmproperties_general a,mmproperties_owner b
where TRUE
and a.`Property ID`=b.`Property ID`
and b.`Owner SNL Institution Key` ='4350215'
order BY o
/*其他例子
4350681
10000190
4350215 第一量子
*/