我的一個SQL查詢正在返回數據中的不可打印字符,因爲我在報告中出現錯誤。請讓我知道如何檢查一個字符串在T-SQL中是否具有不可打印的字符,以便我可以找到這些行並修復數據?提前致謝。sql在字符串中查找不可打印的字符
3
A
回答
0
我發現某些列的字符CHAR(0)導致了這個問題。我用null替換了它們,它工作。
1
Found此:
WITH Num1 (n) AS (SELECT 1 UNION ALL SELECT 1),
Num2 (n) AS (SELECT 1 FROM Num1 AS X, Num1 AS Y),
Num3 (n) AS (SELECT 1 FROM Num2 AS X, Num2 AS Y),
Num4 (n) AS (SELECT 1 FROM Num3 AS X, Num3 AS Y),
Nums (n) AS (SELECT ROW_NUMBER() OVER(ORDER BY n) FROM Num4),
UpdateCTE
AS
(SELECT keycol, DesNM,
(SELECT CASE WHEN ASCII(SUBSTRING(DesNM, n, 1))
BETWEEN 0x00 AND 0x1F
THEN ''
ELSE SUBSTRING(DesNM, n, 1)
END + ''
FROM I2DE AS B
JOIN Nums
ON n <= LEN(DesNM)
WHERE B.keycol = A.keycol
FOR XML PATH('')) AS DesNM_clean
FROM I2DE AS A)
UPDATE UpdateCTE
SET DesNM = DesNM_clean;
有幾個零件給它,一個是產生與在飛行號碼 一個表(使用NumX CTE的),則該列切片個別 字符,檢查它是否在範圍內,然後跳過它, 最終使用FOR XML PATH連接回單個值。
+0
感謝您的回覆 – RKP 2010-11-19 18:35:35
2
當你不知道哪個非打印字符原因造成的問題,但你已經確定了記錄:
- 運行查詢Management Studio中複製有問題的單一已知領域從電網
- 領域粘貼到一個十六進制編輯器(粘貼到文本部分),所以你可以看到的字符
- 查找的十六進制字符在打擊問題一個ASCII表,如果需要的話
現在,你可以做一個的更新更換擦洗你的數據,或者簡單地執行查詢本身的清理,因爲現在你知道什麼是造成問題的原因。
相關問題
- 1. Findstr查找字符串並打印出
- 2. 不可打印字符串數在python
- 3. 如何查找和打印字符串上的重複字符?
- 4. 在SQL語句中查找字符串中的字符串
- 5. 在字符串中查找字符串
- 6. 在字符串中查找字符串
- 7. 在數組中打印字符串打印兩個字符?
- 8. 查找給定字符集中不包含的可打印字符
- 9. 查找字符串中的字符串
- 10. 查找字符串中的字符串
- 11. 查找字符串中的字符串
- 12. 打印字符串
- 13. 打印字符串
- 14. 打印給定字符串中的非打印字符?
- 15. 如何打印出字符串索引字符串中字符串的字符
- 16. 如何在sql中查找字符串中的字符?
- 17. 打印字符串的字符
- 18. SQL查找字符串
- 19. 在字符串中查找字符
- 20. Python:在文件中查找字符串並打印它在
- 21. 打印字符串在python
- 22. 打印「在Java字符串
- 23. 打印在MIPS字符串和可變
- 24. 打印所有可能的字符串,不包含重複字符中相鄰的相等字符字符串
- 25. 子字符串導致不可打印字符
- 26. 在字符串中查找值SQL
- 27. SQL:在字符串中查找連續的重複字符
- 28. 在字符串中顯示不可打印的字符的方法
- 29. AWK:file2中打印字符串不是字符串文件2
- 30. DB2 SQL查詢來查找字符串中的非ASCII字符
你知不知道它是同一個非打印字符? – gbn 2010-09-14 17:19:25