Anduvimos investigando en distintos sitios y así mostrarte la solución para tu inquietud, si tienes dudas puedes dejarnos un comentario y responderemos con mucho gusto, porque estamos para ayudarte.
Solución:
Disponible solo en SQL Server 2008 y posteriores, el constructor de filas tiene este formato:
Podrías usar
SELECT DISTINCT * FROM (VALUES (1), (1), (1), (2), (5), (1), (6)) AS X(a)
Muchos escribieron, entre ellos:
- [MS official] https://docs.microsoft.com/en-us/sql/t-sql/queries/table-value-constructor-transact-sql
- http://www.sql-server-helper.com/sql-server-2008/row-value-constructor-as-derived-table.aspx
En general :
SELECT
DISTINCT
FieldName1, FieldName2, ..., FieldNameN
FROM
(
Values
( ValueForField1, ValueForField2,..., ValueForFieldN ),
( ValueForField1, ValueForField2,..., ValueForFieldN ),
( ValueForField1, ValueForField2,..., ValueForFieldN ),
( ValueForField1, ValueForField2,..., ValueForFieldN ),
( ValueForField1, ValueForField2,..., ValueForFieldN )
) AS TempTableName ( FieldName1, FieldName2, ..., FieldNameN )
En tu caso :
Select
distinct
TempTableName.Field1
From
(
VALUES
(1),
(1),
(1),
(2),
(5),
(1),
(6)
) AS TempTableName (Field1)
La forma más sencilla de obtener valores distintos de una larga lista de texto delimitado por comas sería usar una búsqueda y un reemplazo con UNION para obtener los valores distintos.
SELECT 1
UNION SELECT 1
UNION SELECT 1
UNION SELECT 2
UNION SELECT 5
UNION SELECT 1
UNION SELECT 6
Aplicado a su línea larga de texto delimitado por comas
- Busque y reemplace cada coma con
UNION SELECT
- Agrega un
SELECT
delante de la declaración
Ahora debería tener una consulta funcional
Si te mola el tema, puedes dejar una reseña acerca de qué le añadirías a este artículo.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)