表间公式-获取字段里的数字,文本部分
数据源
效果如下
实现方法如下,将下面的SQL语句分别放到数据库里,执行即可。
1.f_getChinese,获取字段内容里的文本
- CREATE FUNCTION f_getChinese
- (
- @str VARCHAR(500)
- )
-
- RETURNS VARCHAR(500)
- AS
- BEGIN
-
- -- '%[^0-9]%' 所有數字
-
- -- '%[^A-Za-z]%' 所有字母
-
- -- '%[^A-Za-z0-9]%' 所有數字與字母
-
- -- .... 組合使用,依此類推
-
- WHILE PATINDEX('%[^吖-咗]%',@str) > 0
- SET @str = STUFF(@str,PATINDEX('%[^吖-咗]%',@str),1,'')
-
- RETURN @str
- END
- GO
复制代码 2.f_getNum,获取字段内容里的数字
- CREATE FUNCTION f_getNum
- (
- @str VARCHAR(500)
- )
- RETURNS VARCHAR(500)
- AS
- BEGIN
-
- -- get num and dot
- WHILE (PATINDEX('%[^0-9.]%',@str) > 0)
- SET @str = STUFF(@str,PATINDEX('%[^0-9.]%',@str),1,'')
-
- -- remove left dot
-
- WHILE(LEFT(@str,1)='.')
- SET @str = RIGHT(@str,LEN(@str)-1)
-
- -- remove right dot
- WHILE(RIGHT(@str,1)='.')
- SET @str = LEFT(@str,LEN(@str)-1)
- RETURN @str
- END
- GO
复制代码 3.f_getall获取字段里面的数字子母组合内容
- CREATE FUNCTION f_getall
- (
- @str VARCHAR(500)
- )
- RETURNS VARCHAR(500)
- AS
- BEGIN
-
- -- get num and dot
- WHILE (PATINDEX('%[^A-Za-z0-9]%',@str) > 0)
- SET @str = STUFF(@str,PATINDEX('%[^A-Za-z0-9]%',@str),1,'')
-
- -- remove left dot
-
- WHILE(LEFT(@str,1)='.')
- SET @str = RIGHT(@str,LEN(@str)-1)
-
- -- remove right dot
- WHILE(RIGHT(@str,1)='.')
- SET @str = LEFT(@str,LEN(@str)-1)
- RETURN @str
- END
- GO
复制代码 上面的函数设置成功后,就可以在表间公式里正常使用了
|
|
kuaibiao_