Select SQL 服务器在 MySQL 中不工作,Stuff 函数
Select in SQL Server don't work in MySQL, Stuff Function
目前我在 SQL 服务器上完成了一个 select 并且 MySQL 必须有相同的结果,获得一个在两者中都有效的脚本会更好。脚本下方:
select STUFF( (SELECT ', ' + m_e.NAME + '=' + CAST(v.VALUE AS VARCHAR(MAX)) FROM MMP_USER_METADATA_INSTANCE i
left outer join MMP_USER_METADATA_INST_VALUE v on (i.id=v.USER_METADATA_INSTANCE_ID)
left outer join MMP_METADATA_ENTRY m_e on (v.METADATAENTRY_ID=m_e.id)
WHERE (u.id = i.USER_ID)
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)') ,1,2,'') AS 'Campos Adicionais' from mmp_user u
Tables:
MMP_USER_METADATA_INSTANCE,
MMP_USER_METADATA_INST_VALUE,
MMP_METADATA_ENTRY,
MMP_USER.
结果:
<table border="1"><tr BGCOLOR="#CCCCFF"><th>Campos Adicionais</th></tr>
<tr><td>Skype=Testes, Centro de Custo=16, Endereço Bairro=Teste, Endereço Cidade=, Estado Civil=44, Filhos=38, Graduação Curso=, Graduação Faculdade=Teste, Nivel de Idioma Inglês=46, Nivel de Idioma Espanhol=46, Outro Idioma=Teste, Link Linkedin=, Link Facebook=Teste, Esporte=teste, Time de Futebol=teste</td></tr>
</table>
在 MySQL 中,您想要这样的东西:
select (SELECT group_concat(m_e.NAME, '=', value separator ',')
FROM MMP_USER_METADATA_INSTANCE i left outer join
MMP_USER_METADATA_INST_VALUE v
on i.id = v.USER_METADATA_INSTANCE_ID left outer join
MMP_METADATA_ENTRY m_e
on v.METADATAENTRY_ID = m_e.id
WHERE u.id = i.USER_ID
) `Campos Adicionais`
from mmp_user u;
目前我在 SQL 服务器上完成了一个 select 并且 MySQL 必须有相同的结果,获得一个在两者中都有效的脚本会更好。脚本下方:
select STUFF( (SELECT ', ' + m_e.NAME + '=' + CAST(v.VALUE AS VARCHAR(MAX)) FROM MMP_USER_METADATA_INSTANCE i
left outer join MMP_USER_METADATA_INST_VALUE v on (i.id=v.USER_METADATA_INSTANCE_ID)
left outer join MMP_METADATA_ENTRY m_e on (v.METADATAENTRY_ID=m_e.id)
WHERE (u.id = i.USER_ID)
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)') ,1,2,'') AS 'Campos Adicionais' from mmp_user u
Tables:
MMP_USER_METADATA_INSTANCE,
MMP_USER_METADATA_INST_VALUE,
MMP_METADATA_ENTRY,
MMP_USER.
结果:
<table border="1"><tr BGCOLOR="#CCCCFF"><th>Campos Adicionais</th></tr>
<tr><td>Skype=Testes, Centro de Custo=16, Endereço Bairro=Teste, Endereço Cidade=, Estado Civil=44, Filhos=38, Graduação Curso=, Graduação Faculdade=Teste, Nivel de Idioma Inglês=46, Nivel de Idioma Espanhol=46, Outro Idioma=Teste, Link Linkedin=, Link Facebook=Teste, Esporte=teste, Time de Futebol=teste</td></tr>
</table>
在 MySQL 中,您想要这样的东西:
select (SELECT group_concat(m_e.NAME, '=', value separator ',')
FROM MMP_USER_METADATA_INSTANCE i left outer join
MMP_USER_METADATA_INST_VALUE v
on i.id = v.USER_METADATA_INSTANCE_ID left outer join
MMP_METADATA_ENTRY m_e
on v.METADATAENTRY_ID = m_e.id
WHERE u.id = i.USER_ID
) `Campos Adicionais`
from mmp_user u;