gpt4 book ai didi

sql - 在 SQL Server 中将垂直书写的单词转为水平书写的单词

转载 作者:行者123 更新时间:2023-12-04 23:45:45 26 4
gpt4 key购买 nike

我想用T-SQL来转置一个带有单词的列,比如

t
r
a
i
n

进入

train

我尝试使用枢轴,但不是只用转置列返回一行,而是得到一个 5x5 表,沿对角线显示“火车”,其他地方都为 NULL。这个结果对我来说很有意义,但这不是我想要的。我只想将一个垂直书写的单词转换成同一个单词,但水平书写。我应该如何使用枢轴来解决这个问题?或者有没有更简单的方法可以做到这一点?

相反,如果我从一个词开始

train

我将如何转置这个词以使其垂直打印?

t
r
a
i
n

谢谢!

最佳答案

您可以尝试使用 CTE 递归的一种方法

CREATE TABLE T(
col varchar(50)
);

insert into t values ('train');

;with cte as (
select
1 startIdx,
len(col) maxlenght,
col
from t
UNION ALL
select
startIdx+1,
maxlenght,
col
from cte
where startIdx + 1 <= maxlenght
)

select substring(col,startIdx,1),col
from cte

sqlfiddle

结果

t
r
a
i
n

如果想让char转置一个单词的列,可以尝试使用FOR XML

create TABLE T2  (c NVARCHAR(1))
INSERT T2 VALUES('t'),('r'),('a'),('i'),('n');

SELECT STUFF((SELECT c FROM T2 FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,0,'')

sqfiddle

结果

train

关于sql - 在 SQL Server 中将垂直书写的单词转为水平书写的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235852/

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