sql - SQL QUERY 使用 SQL Server 将字符串中的最后一个字母带到第一个字母位置
问题描述
我有一个从SQL Server 数据库中Supervisor
的表调用的列。JobData
在此Supervisor
列中,记录的格式如下。
DANNYL
ADITYAG
SAMMYS
BOBBYJ
我想将这些记录转换为小写并将最后一个字母变为第一个字母。例如,DANNYL
应更改为格式ldanny
并且此格式应应用于所有剩余记录。
任何人都可以帮我解决这个问题的 SQL 查询吗?
解决方案
您可以使用以下解决方案LEFT
来RIGHT
获取名称的各个部分。通过使用LOWER
,您可以将大写字符转换为小写:
SELECT LOWER(RIGHT(Supervisor, 1) + LEFT(Supervisor, LEN(Supervisor) - 1))
FROM JobData
WHERE LTRIM(RTRIM(Supervisor)) <> ''
-- or using ABS on the length - 1 so the WHERE isn't needed.
SELECT LOWER(RIGHT(Supervisor, 1) + LEFT(Supervisor, ABS(LEN(Supervisor) - 1)))
FROM JobData
由于该列看起来Supervisor
包含空值,因此您也可以使用以下解决方案而无需计算并且不会在空值上失败:
SELECT LOWER(RIGHT(Supervisor, 1) + REVERSE(SUBSTRING(REVERSE(Supervisor), 2, LEN(Supervisor))))
FROM JobData
...和另一种可能性使用STUFF
:
SELECT LOWER(LEFT(STUFF(Supervisor, 1, 0, RIGHT(Supervisor, 1)), LEN(Supervisor)))
FROM JobData
推荐阅读
- r - 使用阈值或来自另一个数据帧的截止值按列按数据帧分组
- html - 在 HTML 中没有类的情况下水平对齐文章和放在一边
- c# - 使用约束和暂停支持作用于每个 DynamicData SourceCache 项
- python - 如何将元组元素原始数据插入 SQL 表?
- python-3.x - 从其他 python 文件夹导入模块
- javascript - 我如何在 discord.js 中每 10 秒编辑一次嵌入
- plotly-dash - 如何使用 Dash 在数据表的单元格中创建链接(url)
- awk - 使用 awk 进行系统调用
- python - 如何正确地将代理轮换器添加到脚本中?
- python - multiprocessing.pool() 无限期挂起