2012-02-24 1 views
1

Наверное, действительно простой вопрос, чтобы ответить, но я не могу для жизни меня найти его где угодно.Build <options> теги с FOR XML-контуром в SQL. Удалить ненужные атрибуты

Я ищу для создания опций выбора списка из базы данных с помощью FOR XML Path. До сих пор у меня есть это:

SELECT ID AS 'option/@value', Name AS [option] 
FROM MyTable 
FOR XML Path('') 

Который получает меня это:

<option value="1">Item 1</option><option value="2">Item 2</option>... and so on 

Да очень простые вещи, но теперь я хочу, чтобы установить, какой вариант выбран, где идентификатор позволяет говорить 1. Так что это должно только когда-либо встречаются один раз. Так что я добавить это:

SELECT 
    ID AS 'option/@value', Name AS [option], 
    CASE WHEN ID=1 THEN 'selected' ELSE '' END AS 'option/@selected', 
FROM MyTable 
FOR XML Path('') 

Выход:

<option value="1" selected="selected">Item1</option><option value="2" selected="">Item2</option> 

Хотя это технически установить право приписывать мне нужно только атрибут @selected на вариантах, где дело обстоит так.

Любая помощь или точка в правильном направлении были бы очень приняты.

ответ

1

Вместо того, чтобы использовать пустую строку в вашем сазе возвращает Null

 
SELECT 
    ID AS 'option/@value', 
    CASE WHEN ID=1 THEN 'selected' ELSE null END AS 'option/@selected', 
    Name AS [option]  
FROM MyTable 
FOR XML Path('') 

 Смежные вопросы

  • Нет связанных вопросов^_^