sql-server - 将一列一分为二并在 mssql 中排序
问题描述
我是 sql 新手,我需要在 MSSQL 中执行此操作:我有一个带有用户 ID、全名、年龄等的简单表,其中 fullname 显然是 firstname lastname,例如“Adam Smith”
我只需要根据姓氏对表格进行排序。到底有没有?
解决方案
如果只有 1 个姓氏,那么您可以使用PARSENAME技巧。
这是一个通常用于从对象名称中获取指定部分的函数。
例如'[mytable]'
从'[myschema].[mydatabase].[mytable]'
.
所以它按点分割字符串。
你的字符串有空格。
当空格替换为点时,很容易通过 PARSENAME 从右边获取第一个元素。
SELECT *
FROM yourtable
ORDER BY parsename(replace(fullname,' ','.'),1)
但请注意,当元素超过 4 个时,PARSENAME 返回 NULL。
推荐阅读
- intellij-idea - Intellij:如何转换所有文件的缩进
- linux - 从巨大的 txt.gz 文件中选择/复制包含字符串的行的最快方法
- r - 将列乘以 R 中的子字符串
- java - Spring boot 和 Flyway:集成测试前清除数据库数据
- xml - 将现有 XML 文件中的节点附加到新的 XML 文档中
- javascript - 摩卡咖啡运行缓慢。执行完整的测试套件需要长达 8 秒的时间
- salesforce - B2C 作为销售队伍的 IdP
- angular - Angular 6:如何跟踪组件内变量的变化?
- c++ - cvt::Color 中的 C++ OpenCV 异常断言失败 (scn ==3|| scn == 4)
- python - 从 pandas 列和行数据创建字符串