仅检索字符串的一部分

时间:2012-05-21 13:43:31

标签: sql-server-2008

我想只检索VARCHAR(15)字符串的第一部分。哪个字符串操作最快?我的数据是这样的:

80:0:0:0
100:00:00:00
0:00:25:60

我希望结果如下:

80
100
0

1 个答案:

答案 0 :(得分:3)

DECLARE @str TABLE(x VARCHAR(15));

INSERT @str VALUES ('80:0:0:0'), ('100:00:00:00'), ('0:00:25:60');

SELECT FirstPart = SUBSTRING(x, 1, CHARINDEX(':', x)-1) FROM @str;

结果:

FirstPart
---------
80
100
0

如果你需要显示整个字符串,即使它不包含:,那么你可以这样做:

SELECT SUBSTRING(x, 1, COALESCE(NULLIF(CHARINDEX(':', x), 0), 15)) FROM @str;