Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
BekahLoSurdo
Resolver IV
Resolver IV

Consulta SQL sobre la importación que no funciona

¿Alguien ha tenido algún problema con las funciones SQL (durante el proceso de importación) actuando de manera inconsistente? Específicamente, la función TRIM() está funcionando en algunas filas y no en otras. Importar código SQL (simplificado):

SELECT
 ITEM.ITEM_ID Item,
 TRIM(ITEM.ITEM_ID) TrimmedItem
FROM DELTEK.ITEM ITEM

Resultados (después de algunas columnas PQ y filtrados por filas con espacios finales):

TRIM Function.PNG

Como puedes ver, las últimas 4 filas se recortan correctamente pero las primeras 3 no lo están, a pesar de que todas ellas tienen el carácter 32 como su último carácter.

Desafortunadamente, no puedo duplicar esto con datos de muestra como si se utiliza '500P55W565LJ3H ' explícitamente, funciona correctamente. Así que es algo acerca del registro en sí proveniente de la base de datos. Espero que alguien haya visto algo similar ya que no podemos duplicar esto.

También he probado RTRIM(), TRIM(' ' FROM ITEM_ID), TRIM(CHAR(32) FROM ITEM_ID)... nada parece funcionar. Tia

1 ACCEPTED SOLUTION

Gracias @az38. Revisé la longitud como parte de mi solución de problemas y había pasado a comprobar el valor ASCII real del último carácter, ya que sabía que la longitud era diferente. Sin embargo, te felicito porque alguien más puede tener la misma pregunta.

Terminé comprobando los caracteres ASCII en la consulta SQL en lugar de PQ y resulta que los que no se recortaron automáticamente en realidad tenía un espacio sin descanso (carácter 160) en lugar de un espacio --- pero luego cuando se importó en PBI, esto se tradujo de nuevo al carácter 32 - fresco, ¿verdad? Lo arreglé con este código SQL:

SELECT
 RTRIM(ITEM.ITEM_ID, CHR(32)||CHR(160)) Item
...

¡Gracias por tu ayuda!

View solution in original post

5 REPLIES 5
v-alq-msft
Community Support
Community Support

Hola, @BekahLoSurdo

Me gustaría sugerirle que utilice la función Text.Trim() en 'Editor de consultas' para eliminar todos los espacios en blanco iniciales y finales del texto específico. Creé datos de ejemplo para reproducir su escenario. También puede utilizar Text.Length() para comprobar si un texto contiene espacios en blanco iniciales y finales.

Mesa:

f1.png

Aquí están los códigos en 'Advanced Editor.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WUkhMSlZQUIrViVZKSU2DstIzMkGsWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Text = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Text", type text}}),
    Custom1 = Table.AddColumn(#"Changed Type","Length before trim",each Text.Length([Text])),
    Custom2 = Table.AddColumn(Custom1,"TrimText",each Text.Trim([Text])),
    Custom3 = Table.AddColumn(Custom2,"Length after trim",each Text.Length([TrimText]))
in
    Custom3

Resultado:

f2.png

Saludos

Allan

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias @v-alq-msft pero tengo algunos pasos más de agrupación / clasificación que necesito hacer en SQL antes de importar en PBI y tener esa opción disponible. No recortarlos antes de la clasificación fue contar incorrectamente los elementos no recortados como valores únicos y darles rangos distintos.

az38
Community Champion
Community Champion

@BekahLoSurdo

también eche un vistazo aquí para solucionar el problema en la consulta SQL https://stackoverflow.com/questions/27915149/sql-server-rtrimltrimcity-not-stripping-whitespace


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn
az38
Community Champion
Community Champion

Hola @BekahLoSurdo

parece que tienes otros caracteres especiales en las celdas recortadas

para depurar, marque LEN([Item]) y LEN([TRIM(Item))


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

Gracias @az38. Revisé la longitud como parte de mi solución de problemas y había pasado a comprobar el valor ASCII real del último carácter, ya que sabía que la longitud era diferente. Sin embargo, te felicito porque alguien más puede tener la misma pregunta.

Terminé comprobando los caracteres ASCII en la consulta SQL en lugar de PQ y resulta que los que no se recortaron automáticamente en realidad tenía un espacio sin descanso (carácter 160) en lugar de un espacio --- pero luego cuando se importó en PBI, esto se tradujo de nuevo al carácter 32 - fresco, ¿verdad? Lo arreglé con este código SQL:

SELECT
 RTRIM(ITEM.ITEM_ID, CHR(32)||CHR(160)) Item
...

¡Gracias por tu ayuda!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.