我有字符串列email_id
;数据看起来像这样:
email_id
"1"
"6"
"3 4"
"8"
"0 3"
"0 5 7"
我想得到一个整数形式的id列表。如果字符串中有两个数字,我想要最后一个。我的结果应该是;
SELECT some_function (email_id ) FROM table
1
6
4
8
3
7
有可能在SQL Server中这样做吗?
SELECT
CAST(RIGHT(email_id, LEN(email_id) - CHARINDEX(' ', email_id)) AS INT)
FROM
yourTable
如果且仅当,所有的值都可以可靠地转换为INT类型,并且最多只有一个空格。
EDIT处理n
值列表
这并不漂亮,但它避免了递归和/或循环。如果有人给出的答案没有REVERSE()测试,看看它是否比这更快。
SELECT
CAST(
REVERSE(
LEFT(
REVERSE(email_id),
CHARINDEX(' ', REVERSE(email_id) + ' ') - 1
)
)
AS INT
)
FROM
yourTable
SELECT CAST(replace(your_column ,' ','') as int) FROM table