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

Wyodrębnianie wartości nvarchar z XML w T-SQL:zwracany jest tylko jeden znak

Nie używaj nvarchar bez rozmiaru. Z dokumentacji :

Jeśli nie znasz dokładnej długości, zawsze możesz użyć nvarchar(max) :

declare @criteria xml;
set @criteria = N'<criterion id="DocName"><value>abcd</value></criterion>';

declare @val nvarchar(max);
set @val = @criteria.value('(criterion[@id="DocName"]/value)[1]', 'nvarchar(max)');

select @val;

demonstracja skrzypiec sql




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolumna wyjściowa nazwy SQL UNION FOR XML

  2. Używanie podzapytań w SQL do znalezienia max(count())

  3. Konwertuj XML na tabelę w SQL Server 2005

  4. SQL Server 2008 przy użyciu RANK do dynamicznego numerowania wierszy

  5. SQL Server 2005 Unikalne ograniczenie dwóch kolumn