2016-12-15 4 views
0

У меня есть табличный тег с 2-мя полями ID, Текст. Я хотел бы сделать запрос с отчетливым значением текста и добавить «Все» На первой позиции (он используется в качестве значения параметра SSRS) Я сделал следующий запрос:T-SQL Добавить текст в первой строке запроса

SELECT 'All' [Text] Union 
Select DISTINCT [text] from tag 

проблемы есть некоторые текст, начинающийся с номера, и пришел перед текстом All в запросе. Как я могу сделать запрос, чтобы получить все в первом ряду

+1

Выборочные данные будут полезны –

+0

Пусть говорят, что есть строки, как следующее: 1, 1w 2, SS 3, TT –

ответ

2
SELECT 'All' AS [Text], 0 AS Sorter 
UNION 
SELECT [text], 1 AS Sorter 
FROM tag 
ORDER BY 2,1 

Если вы просто хотите текст, попробуйте:

WITH alltext AS (
SELECT 'All' AS [Text], 0 AS Sorter 
UNION 
SELECT [text], 1 AS Sorter 
FROM tag 
) 
SELECT text FROM alltext ORDER BY sorter, text 

Надеюсь, что это поможет.

+0

Он работает для меня. Я использовал версию CTE –

+1

, я удалил 'distinct', который не нужен при использовании' union'. также 'order by' в первом запросе должен был быть« order by 2,1' –

0

Вы можете использовать union all предотвратить заказ:

SELECT 'All' [Text] UNION ALL 
(Select DISTINCT [text] from tag order by [text]) 
+0

Я не понимаю, почему все было бы решить эту проблему. Я бы хотел иметь «Все» В первой строке, но в таблице у меня есть значение, например, 1, 2 и т. Д., И запрос упорядочивается по значению, и они идут до «Все». –

+0

изменил мой ответ – GurV