我必须将数据库中的马力字段作为整数获得,但它包含如下所示的值
330hp/@6,000
30hp/@3,000
1000hp/@6,000
有人可以建议我如何将其转换为整数?
我只需要
330
30
1000
- 干杯
答案 0 :(得分:3)
这会奏效。如果没有' h'在文中,它将返回空白。如果你想演员,请继续。但请确保首先验证数据。
从0开始是删除第一个字符的好方法' h'而不是减去1,当没有' h'存在
DECLARE @t table(col varchar(20))
insert @t values
('330hp/@6,000'),
('30hp/@3,000'),
('1000hp/@6,000'),
('123')
SELECT
SUBSTRING(col, 0, CHARINDEX('h', col))
FROM @t
结果:
330
30
1000
blank
答案 1 :(得分:2)
Select LEFT(ColumnName,CHARINDEX('h',ColumnName) - 1)
答案 2 :(得分:2)
以下内容可行。
SELECT LEFT(@ Test,PATINDEX('%hp / @%',@ Test)-1)
然后将结果转换为int。如果您的数据不符合给定的标准,您可能希望在try块中放置类似的内容。
SELECT CAST(LEFT(@ Test,PATINDEX('%hp / @%',@ Test)-1)AS INT)
答案 3 :(得分:2)
试试这个
SELECT LEFT(col1,PATINDEX('%hp%',Col1) - 1) 来自MyTable