sql-server - 将一列中的值拆分为两列

标签 sql-server tsql

我在 SQL 中有一列,我想在选择时将一列拆分为两列(通过分隔符)。例如,该表当前有:

---------
Mary - 16

我想要两列作为查询结果:

--------   --------
Mary       16

感谢您的帮助。

最佳答案

SELECT 
  left_side  = RTRIM(SUBSTRING(col, 1, CHARINDEX('->', col)-2)),
  right_side = LTRIM(SUBSTRING(col, CHARINDEX('->', col) + 2, 4000))
FROM dbo.table;

啊,我明白了。 | 字符是列说明符,不是输出的一部分。尝试:

SELECT 
  left_side  = LTRIM(RTRIM(SUBSTRING(col, 1, CHARINDEX('-', col)-1))),
  right_side = LTRIM(RTRIM(SUBSTRING(col, CHARINDEX('-', col) + 1, 4000)))
FROM dbo.table;

关于sql-server - 将一列中的值拆分为两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561346/

相关文章:

sql - 使用staging_table1和table2中的数据插入table1,同时使用staging_table1从table2获取数据

java - JDBC SQL Server 连接不返回任何结果

MySQL 查询 : 3 tests passed, 1 失败

c# - 防止 T-SQL 语句提交应用程序启动的事务

sql - @table变量或#temp表: Performance

xml - T-SQL 2005 : Passing Null Values through XML datatype

sql-server - 这可以用 JOIN 之类的东西来完成吗?

sql - 查询功能花费的时间太长

sql-server - SQL Server 架构所有者权限

php - Ubuntu 的自定义日期格式