Eu tenho o seguinte XML armazenado em uma coluna XML (chamada Roles
) em um banco de dados do SQL Server.
<root>
<role>Alpha</role>
<role>Beta</role>
<role>Gamma</role>
</root>
Eu gostaria de listar todas as linhas que têm uma função específica nelas. Esta função foi passada pelo parâmetro
sql
sql-server
xml
xquery
Bistro
fonte
fonte
[1]
faz na sua resposta?[1]
foi uma pergunta muito boa. Isso significa que você escolhe o primeiro valor da função no XML e isso significa que isso funcionará apenas para encontrarAlpha
em seu xml de amostra. Não encontrará a linha se você procurarBeta
.Se você deseja que a consulta funcione,
where col like '%Beta%'
você pode usarcontains
fonte
se o nome do seu campo for Funções e o nome da tabela for table1, você poderá usar o seguinte para pesquisar
fonte
like
?forexample /root/role like ....
.value('(/root/role)[1]', 'varchar(max)') like '%yourtext%'
, em vez deexists
como explicado Leniel@Role
.Eu vim com um trabalho simples por baixo, que também é fácil de lembrar :-)
fonte
Você pode fazer o seguinte
Obviamente, isso é um pouco complicado e eu não o recomendaria para nenhuma solução formal. No entanto, acho essa técnica muito útil ao fazer consultas adhoc em colunas XML no SQL Server Management Studio para SQL Server 2012.
fonte
Dica útil. Consultar um valor na coluna XML do SQL Server (XML com espaço para nome)
por exemplo
por exemplo, XML nos parâmetros:
por exemplo, consulta:
fonte
Eu usei a instrução abaixo para recuperar os valores no XML na tabela Sql
fonte
Você pode consultar a tag inteira ou apenas o valor específico. Aqui eu uso um curinga para os namespaces xml.
fonte