0

我有这个查询:

Select DFC_NOMBRE_CAMPO, DFC_TITULO, TDT_DATO_MOTOR, DFC_LONGITUD
FROM MEM_DEFINICIONES_CAMPOS JOIN MEM_TIPOS_DATOS ON DFC_TDT_CODIGO = TDT_CODIGO 
WHERE DFC_ALMACENAR_BASEDATOS = 'S'
ORDER BY DFC_NOMBRE_CAMPO ASC, DFC_LONGITUD DESC

结果,给我重复的值:

DFC_NOMBRE_CAMPO                                   DFC_TITULO                                         TDT_DATO_MOTOR       DFC_LONGITUD
-------------------------------------------------- -------------------------------------------------- -------------------- ---------------------------------------
CodigoRespuesta                                    Cod. Respuesta                                     Varchar              3
CodigoRespuesta                                    Cod. Resp.                                         Numeric              3
CodigoRespuesta                                    Cod Respuesta                                      Numeric              3
CodigoTransaccion                                  NULL                                               Numeric              2
CodigoTransaccion                                  Codigo Transaccion                                 Numeric              2
CodigoTransaccion                                  Codigo Transaccion                                 Numeric              2
Estado                                             Estado                                             Numeric              2
FechaHora                                          Fecha                                              Varchar              14
FechaHora                                          Fecha                                              Varchar              14
FechaHora                                          Fecha                                              Varchar              14
NUT                                                NUT                                                Numeric              9
NUT                                                NUT                                                Numeric              8
NUT                                                NUT                                                Numeric              8                                           

我如何只能从每个(DFC_NOMBRE_CAMPO)组中获取第一条记录。像这样:

DFC_NOMBRE_CAMPO                                   DFC_TITULO                                         TDT_DATO_MOTOR       DFC_LONGITUD
-------------------------------------------------- -------------------------------------------------- -------------------- ---------------------------------------
CodigoRespuesta                                    Cod. Respuesta                                     Varchar              3
Estado                                             Estado                                             Numeric              2
FechaHora                                          Fecha                                              Varchar              14
NUT                                                NUT                                                Numeric              9
4

1 回答 1

2

尝试这个:

;
WITH CTE AS
     (
         SELECT DFC_NOMBRE_CAMPO,
                DFC_TITULO,
                TDT_DATO_MOTOR,
                DFC_LONGITUD,
                ROW_NUMBER() OVER(
                    PARTITION BY DFC_NOMBRE_CAMPO ORDER BY DFC_NOMBRE_CAMPO ASC,
                    DFC_LONGITUD DESC
                ) Rn
         FROM   MEM_DEFINICIONES_CAMPOS
                JOIN MEM_TIPOS_DATOS
                     ON  DFC_TDT_CODIGO = TDT_CODIGO
         WHERE  DFC_ALMACENAR_BASEDATOS = 'S'
     )

SELECT *
FROM   CTE
WHERE  Rn = 1
于 2012-04-10T22:11:35.023 回答