我们可以使用正则表达式从数据库中选择项目吗?表项如下
Table column|name|
10.01.02 | a |
100.2.03 | b |
1021.10.04 | c |
现在我的问题是我需要选择列并获取如下子字符串
Table column|name|
10.01 | a |
100.2 | b |
1021.10 | c |
任何关于正则表达式或子字符串的建议?
我们可以使用正则表达式从数据库中选择项目吗?表项如下
Table column|name|
10.01.02 | a |
100.2.03 | b |
1021.10.04 | c |
现在我的问题是我需要选择列并获取如下子字符串
Table column|name|
10.01 | a |
100.2 | b |
1021.10 | c |
任何关于正则表达式或子字符串的建议?
Try this,
SELECT SUBSTRING(column1,0,(CHARINDEX('.',column1,CHARINDEX('.',column1)+1)))
FROM Table1
select left(a, datalength(a) - charindex('.', reverse(a))), b
from (
select '10.01.02', 'a' union all
select '100.2.03', 'b' union all
select '1021.10.04', 'c'
) t(a,b)
我认为正则表达式没有解决方案。
UPD
另一种解决方案:
select reverse(parsename(reverse(a), 1)) + '.' + reverse(parsename(reverse(a), 2)), b
from (
select '10.01.02', 'a' union all
select '100.2.03', 'b' union all
select '1021.10.04', 'c'
) t(a,b)
可能有更简单更聪明的方法。但这是我能想到的。
select substr(column, 1,lenght(column)-instr(reverse(column),'.'), name from table;