我想只检索VARCHAR(15)字符串的第一部分。哪个字符串操作最快?我的数据是这样的:
80:0:0:0
100:00:00:00
0:00:25:60
我希望结果如下:
80
100
0
答案 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;