Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 查询交换字母在单词中的位置_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 查询交换字母在单词中的位置

Sql server 查询交换字母在单词中的位置,sql-server,sql-server-2008,Sql Server,Sql Server 2008,如何编写查询以交换表中特定列中单词的字母位置 示例: HAPPY -> PHAPY TIRED -> RTIED 我该怎么做?试试这个: Declare @YourText NVARCHAR(100) = 'HAPPY' Select Substring(@yourText,3,1)+STUFF(@YourText,3,1,'') 如果您想对word中的字母进行洗牌,可以尝试下面的查询。您可以将其作为自定义项 DECLARE @Word VARCHAR(20) = 'H

如何编写查询以交换表中特定列中单词的字母位置

示例:

 HAPPY  -> PHAPY
 TIRED  -> RTIED
我该怎么做?

试试这个:

Declare @YourText NVARCHAR(100) = 'HAPPY'

Select Substring(@yourText,3,1)+STUFF(@YourText,3,1,'')

如果您想对word中的字母进行洗牌,可以尝试下面的查询。您可以将其作为自定义项

DECLARE @Word VARCHAR(20) = 'HAPPY'
DECLARE @NewWord VARCHAR(20) = ''
DECLARE @Count INT = 1
DECLARE @Pos INT

WHILE LEN(@Word) > 0
BEGIN
    SET @Pos = CAST(RAND()*10 AS INT) % LEN(@Word) + 1
    SET @NewWord = @NewWord + ISNULL(SUBSTRING(@Word, @Pos, 1),'')
    SET @Word = STUFF(@Word, @Pos, 1, '')
    SET @Count = @Count + 1
END

SELECT @NewWord AS NewWord

不清楚您在问什么?是否希望将第三个字母重新定位到开头?这可以通过SQL实现,但我认为SQL不是实现这一点的合适技术。您可以在前端技术中实现这一点,因为前端技术有阵列等。