4
DECLARE @myXml XML
SET @myXml = CONVERT(xml, '<a key="2"></a>', 1)
SELECT s.value('@key', 'VARCHAR(8000)') AS myKey from @myXml.nodes('/a') t(s)
Ответ:SQL Server XQuery в одной строке?
это хорошо.
Я хочу сделать это без объявления переменной @myXml
.
Что-то вроде:
SELECT
s.value('@key', 'VARCHAR(8000)') AS myKey
FROM
CONVERT(xml, N'<a key="2"></a>', 1) .nodes('/a') t(s)
, но я получаю сообщение об ошибке:
Почему [1] ???? –
@Royi Namir: Это ограничивает вас одним экземпляром тега 'a' под корнем. Если вам требуется более одного экземпляра (если ваша реальная строка XML более сложна, чем та, что в вашем примере), вам понадобится другой подход, который фактически уничтожает XML, как ваш первый образец (и мой, ниже, делает). Если есть _is_ только один тег 'a', подход kd7, безусловно, будет быстрее. – mwigdahl