SQL Server T-SQL 中将替换 Char(0)
的构造是什么? ,空字符,嵌入在一个字符串中,其十六进制代码?
IE。
REPLACE('t'+Char(0)+'t', Char(0), REPLACE(master.dbo.fn_varbintohexstr(0), '000000', ''))
不返回
't0x00t'
,有什么用? (这已经适用于 1 到 31。)此 question有解释问题的答案是整理。
此 answer显示
master.dbo.fn_varbintohexstr(0)
将返回 0x00000000
.当我手动简化内部
Replace
至 '0x00'
,只需添加一个 Collate
子句确实使它起作用,就像上述问题的答案所建议的那样,但我找不到适用于完整表达式的版本(然后可以用于所有 n、0 到 31,跳过 9、10 和 13 )。
最佳答案
你想要的可能是这个。
SELECT REPLACE('t'+Char(0)+'t', Char(0), CONVERT(VARCHAR(10),REPLACE(master.dbo.fn_varbintohexstr(0), '000000', '')))
您需要将其显式转换为 VARCHAR
如果你想要完整的表达删除内部替换
SELECT REPLACE('t'+Char(0)+'t', Char(0), CONVERT(VARCHAR(10),master.dbo.fn_varbintohexstr(0)))
关于sql-server - 在 SQL Server 中,用其十六进制代码替换嵌入在字符串中的空字符 Char(0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952252/