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.
¿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):
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
Solved! Go to 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!
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:
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:
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.
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
Hola @BekahLoSurdo
parece que tienes otros caracteres especiales en las celdas recortadas
para depurar, marque LEN([Item]) y LEN([TRIM(Item))
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!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |