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

SQL:Jak mogę uzyskać wartość atrybutu w typie danych XML?

Użyj XQuery:

declare @xml xml =
'<email>
  <account language="en" />
</email>'

select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')
declare @t table (m xml)

insert @t values 
    ('<email><account language="en" /></email>'), 
    ('<email><account language="fr" /></email>')

select m.value('(/email/account/@language)[1]', 'nvarchar(max)')
from @t

Wyjście:

en
fr


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:+(jednoargumentowy) operator na ciągach nienumerycznych

  2. T-SQL Czy możliwe jest wykonanie aktualizacji / wstawienia za pomocą jednej szybkiej operacji?

  3. Czy w DB mogą istnieć ograniczenia o tej samej nazwie?

  4. Podczas próby zapisania raportu SSRS pojawia się dziwny błąd

  5. Czy są jakieś wady, aby zawsze używać nvarchar(MAX)?