将一列中的值拆分为两列

2021-09-10 00:00:00 tsql sql-server

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

I have a column in SQL that I would like to split a column into two columns on select (by a delimiter). For example, the table currently has:

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

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

I'd like two columns as the result of the query:

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

感谢您的帮助.

推荐答案

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

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

Ah, I see. | characters are column specifiers, not part of the output. Try:

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

相关文章