gpt4 book ai didi

sql - 获取存储字符的 ASCII 值的 T-SQL 函数

转载 作者:行者123 更新时间:2023-12-05 00:05:01 25 4
gpt4 key购买 nike

我正在使用 T-SQL 块来获取存储在数据库列中的 ascii 字符的转储。我知道这可以在 Oracle 中使用 DUMP() 函数轻松完成。我不熟悉 SQL Server 语法,但我正在使用这样的东西。

    SET NOCOUNT ON
-- Create the variables for the current character string position
-- and for the character string.
DECLARE @position int, @string char(15), @output char(1000), @output2 char(2000)
-- Initialize the variables.
SET @position = 1
SET @output2 = 'Start:'
SELECT @string = name from
location where location_type = 4405 and owner_id = 362
and location_id = 53183
WHILE @position <= DATALENGTH(@string)

BEGIN
SELECT @output = CAST(ASCII(SUBSTRING(@string, @position, 1)) AS CHAR)
+ ' ' + CHAR(ASCII(SUBSTRING(@string, @position, 1)))
PRINT @output
--SET @output2 = @output2 + '=' + @output
SET @position = @position + 1
END
--PRINT @output2
SET NOCOUNT OFF
GO

出于某种原因,如果我取消注释与 @output2 相关的代码,它将无法正确打印 @output2。
这个想法是将所有 ascii 值作为一行返回,而不是为每个字符获取一行。难道我做错了什么?

最佳答案

如果您正在寻找单行,这可能是最简单的方法(基于 Cyber​​kiwi 答案)

DECLARE @string char(15),
@output1 varchar(1000),
@output2 varchar(1000)

SELECT @string = name
from location
where location_type = 4405 and owner_id = 362
and location_id = 53183

SET @output1 = ''
SET @output2 = ''

select
@output1 = @output1 + SUBSTRING(@string, number, 1) + ', ',
@output2 = @output2 + cast(ASCII(SUBSTRING(@string, number, 1)) as varchar) + ', '
from master..spt_values
where type='p' and number between 1 and LEN(@string)
order by number

PRINT @output1
PRINT @output2

关于sql - 获取存储字符的 ASCII 值的 T-SQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com