Непустая строка без каких-либо тегов будет рассматриваться как отдельный текстовый узел на SQL сервере.
Таким образом, вы можете использовать 'text()[1]'
, чтобы получить первый текстовый узел верхнего уровня в содержимом XML и проверить его.
вы можете использовать exist
, если хотите исключить из рассмотрения любое содержимое, которое представляет собой смесь текстовых узлов и элементов верхнего уровня.
SELECT *,
your_col.value('text()[1]', 'varchar(8000)')
FROM t
WHERE your_col.exist('*') = 0 AND your_col.exist('text()') = 1