Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak dołączyć dane OPENXML do mojego wewnętrznego zapytania sprzężenia?

Czy nalegasz? na korzystanie z OpenXML? Jest stary, przestarzały — korzystanie z natywnych funkcji XQuery zazwyczaj jest znacznie łatwiejsze .

Wypróbuj coś takiego:

DECLARE @Employees TABLE (EmployeeID INT, Title VARCHAR(20), FirstName VARCHAR(20),LastName VARCHAR(20))

INSERT INTO @Employees VALUES(1, 'Engineering', 'Mike', 'Brown')
INSERT INTO @Employees VALUES(2, 'Programmer', 'Yves', 'Anthony')

DECLARE @doc XML 
SET @doc = '<ROOT>
              <Employee EmployeeID = "1"  EmpStatus = "Full Time"/>
              <Employee EmployeeID = "2"  EmpStatus ="Part Time" />
            </ROOT>'

;WITH XmlCTE AS
(
    SELECT
        EmpID = Empl.value('@EmployeeID', 'int'),
        EmpStatus = Empl.value('@EmpStatus', 'varchar(10)')
    FROM @doc.nodes('/ROOT/Employee') AS Tbl(Empl)
)
SELECT 
    e.*, x.EmpStatus 
FROM 
    @Employees e
INNER JOIN  
    xmlcte x ON e.EmployeeID = x.EmpID

Daje mi to wynik:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyznaj użytkownikowi msdb dostęp do profilu poczty bazy danych w programie SQL Server (T-SQL)

  2. Funkcja AWS Lambda do połączenia z SQL Server za pomocą Pythona

  3. wybierz jeden wiersz na identyfikator

  4. Ograniczenie wyrażenia regularnego programu SQL Server

  5. Wybór narzędzia do monitorowania serwera SQL dopasowanego do Twoich potrzeb