I have this data
x
Id Campo
----------- ----------
1 id_recibo
2 col_2
3 col_65
4 UNDCAP
5 id_recibo
6 col_2
7 col_65
8 UNDCAP
And I need to do something like SELECT DISTINCT
obtaining the data in order of appearance and not in the ascending order by default that is obtained.
If I do a SELECT DISTINCT
I get this:
campo
--------
col_2
col_65
id_recibo
UNDCAP
Here the code:
IF OBJECT_ID('tempdb..#tmp') IS NOT NULL
DROP TABLE #tmp
CREATE TABLE #tmp
(
Id INT IDENTITY,
Campo VARCHAR(MAX)
)
INSERT INTO #tmp (Campo)
VALUES ('id_recibo'), ('col_2'), ('col_65'), ('UNDCAP'),
('id_recibo'), ('col_2'), ('col_65'), ('UNDCAP')
SELECT * FROM #tmp
SELECT DISTINCT campo FROM #tmp
The result I need is like this:
campo
----------
id_recibo
col_2
col_65
UNDCAP
I tried some like this, but It doesn’t work, because the order is variable:
SELECT
A.Campo AS NuevoOrden
FROM
(SELECT DISTINCT
CAMPO
FROM
#tmp) A
ORDER BY NEWID()
Advertisement
Answer
I think you just want:
select campo
from t
group by campo
order by min(id);