Я хотел бы иметь таблицу, в которой я могу хранить XQuery Comparison Expressions, чтобы я мог их оценить в запросе.Выражения сравнения XQuery в столбце SQL
Я делал немного R & D, если это возможно, и я борюсь.
Если я помещаю выражение XQuery в столбец, то, похоже, он по-разному оценивает, если я помещаю выражение XQuery непосредственно в запрос. Например, когда я запускаю ниже запрос:
declare
@x xml = ''
create table #condition
(
condition nvarchar(255)
)
insert into #condition
values
('''1''=''1''')
select
condition,
@x.query('sql:column("condition")'),
@x.query('''1''=''1''')
from #condition
Я бы ожидал, чтобы вернуться:
'1'='1', true, true
Однако на самом деле возвращает:
'1'='1', '1'='1', true
Кто-нибудь знает, как я могу оценить выражения сравнения, которые хранятся в столбце?
Возможный план заключается в том, чтобы использовать эту технику для фильтрации строк таблицы на основе существующих условий XQuery. Поэтому, в конечном счете, я хочу, чтобы это можно было сделать в предложении where выражения select.
Я поставил вышеприведенный пример в каталог sql fiddle, который полезен.
Большое спасибо
Привет, чем больше я занимаюсь этим, тем больше я понимаю, почему динамические утверждения XQuery невозможны. Единственный способ, по-моему, вы могли бы искупить его, - это использовать динамический sql, как вы предлагаете, но я бы предпочел не использовать это решение в этом случае. Спасибо, что указал мне в правильном направлении! Вернемся к чертежной доске на этом ... – stormCloud