通过'/'将值拆分为单独的列

时间:2015-04-23 15:25:13

标签: sql-server tsql

我从表中选择BP(sys / dia)。我希望将值拆分为两个单独的列。

CREATE TABLE  #BP_INFO
(ID INT , NAME VARCHAR(10), BP VARCHAR(10))

INSERT INTO #BP_INFO
VALUES(1,'ABC','100/60')
     ,(2,'XYZ','120/70')
     ,(3,'GHD','110/55')
SELECT * FROM #BP_INFO

我想要的结果如下所示:

ID  NAME   BP_SYS   BP_DIA
1   ABC     100      60
2   XYZ     120      70
3   GHD     110      55

3 个答案:

答案 0 :(得分:2)

那里有一些可怕的标记,但不过,我得到了它。

SELECT ID, NAME
, LEFT(BP,CHARINDEX('/',BP)-1) AS BP_SYS
, RIGHT(BP,CHARINDEX('/',REVERSE(BP))-1) AS BP_DIA
FROM #BP_INFO

另一种方式,如果你像我一样,并喜欢多种做事方式:

SELECT ID, NAME
, PARSENAME(REPLACE(BP,'/','.'),2) AS BP_SYS
, PARSENAME(REPLACE(BP,'/','.'),1) AS BP_DIA
FROM #BP_INFO

谢谢编辑OP的人。好多了。

答案 1 :(得分:0)

false已发布的其他变体

@JohnnyBell

答案 2 :(得分:0)

我们也可以这样继续

CREATE TABLE  #BP_INFO
(ID INT , NAME VARCHAR(10), BP VARCHAR(10))

INSERT INTO #BP_INFO
VALUES(1,'ABC','100/60')
     ,(2,'XYZ','120/70')
     ,(3,'GHD','110/55')


SELECT ID,name,
SUBSTRING(BP,0,CHARINDEX('/',BP)) AS BP_SYS,
SUBSTRING(BP,CHARINDEX('/',BP)+1,LEN(BP))AS BP_DIA
 FROM #BP_INFO