Ola pessoal, dando continuidade ao assunto de juncoes, hoje vamos abordar a juncao RIGHT JOIN. A funcao desse operador e similar a do operador LEFT JOIN, a unica mudanca fica por conta da tabela que tera todos os seus dados retornados. Neste caso o RIGHT JOIN retornara todos os registros da tabela situada a direita do operador, na tabela da esquerda so serao retornados os dados que tiverem referencia da tabela da direita. Vamos exemplificar este caso, utilizando o banco de dados AdventureWorks.SELECT P.FirstName, P.LastName, P.BusinessEntityID, E.BusinessEntityID, E.VacationHours, E.SickLeaveHoursFROM HumanResources.Employee ERIGHT OUTER JOIN Person.Person PON E.BusinessEntityID = P.BusinessEntityID;Resultado:Na imagem acima recortei apenas os 10 primeiros registros do resultado (no total sao retornados 19972 registros), veja que em todos eles as 3 primeiras colunas, que sao da tabela Person, contem algum dado. Como Person esta do lado direito do operador RIGHT JOIN todos os registros serao retornados, independente de haver alguma referencia na tabela Employee. Vamos ver mais um exemplo utilizando a imagem abaixo:Se executassemos o seguinte select:SELECT F.IDFUNC, F.NOME, F.IDDEPAR, D.IDDEPAR, D.DESCRI FROM #FUNCIONARIO F RIGHT JOIN #DEPARTAMENTO D ON F.IDDEPAR = D.IDDEPAR;Teriamos o seguinte resultado:Veja que como #DEPARTAMENTO e a tabela a direita do operador RIGHT ela teve todos os seus dados retornados, ja os dados da tabela #FUNCIONARIO so sao retornados aqueles que possuem departamento. Eventualmente precisamos recuperar registros do banco de dados de acordo com um determinado padrao de string. O Sql Server disponibiliza duas formas de efetuar esse filtro, atraves do operador LIKE ou do predicado CONTAINS. Neste post vamos abordar o funcionamento do operador LIKE.De uma forma geral utilizamos o operador LIKE na clausula WHERE da seguinte forma:match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]Onde:match_expression e uma expressao sql valida que retorna um tipo string (CHAR, VARCHAR, NVARCHAR, NCHAR);[NOT] operador opcional utilizado para negar qualquer expressao boleana;LIKE operador responsavel pelo filtro, retorna TRUE se for encontrado o padrao pattern em match_expression, caso contrario retorna FALSE;pattern e o padrao que sera utilizado para efetuar o filtro nos registros com base na match_expression, pode ter ate 8000 caracteres;[ ESCAPE escape_character ] caracter opcional usado como literal para flexibilizar o operador LIKE informando que o caracter coringa deve ser interpretado como um caracter regular nao como caracter curinga, veremos alguns exemplos desses caracteres abaixo. Para executar os exemplos utilizaremos o Sql Server Management Studio do Microsoft SQL Server 2008 (SP3) - 10.0.5512.0Num banco de dados qualquer criado por voce, abra uma nova consulta com conexao local (arquivo > novo > consulta com conexao local). Vamos criar uma tabela temporaria e inserir alguns registros para fazer os testes.Script da tabela temporaria:CREATE TABLE #CONTATO( ID INT, NOME VARCHAR(100), EMAIL VARCHAR(100), PERCENTUAL VARCHAR(4))Script para inserir os registros:INSERT INTO #CONTATO VALUES(1,'Maria de Fatima','mariaf@gmail.com','5%'),(2,'Antonio Jose','antoniojose@yahoo.com','15%'),(3,'Fernanda de Carvalho','fc@yahoo.com','70%'),(4,'Uelinton Josenildo','josenildo.u@gmail.com','35%'),(5,'Welinton Barbosa','wb@yahoo.com','84%')Obs: Nao feche a sua conexao, esta e uma tabela temporaria e esta em memoria, se a conexao for interrompida ela deixara de existir, outra forma de eliminar a tabela e atraves do comando DROP TABLE #CONTATO)Vamos aos exemplos:1- Selecionar todos os registros que no campo nome esteja contido exatamente o termo "Maria de Fatima".SELECT