获取没有特殊字符,空格和

时间:2015-07-28 13:34:06

标签: sql-server sql-server-2014

基本表:

Someid   |         SomeName
_______________________________
    1    |    Name -,#
    2    |    Something else ,-'

期望输出,最好是在视图中:

SomeName的别名= SomeAlias

    SomeAlias
________________
     name
 somethingelse

所以我的问题是如何创建一个删除所有时髦字符和空格(不是数字)的视图,并将所有内容更改为小写。

我不想以任何方式改变SomeName列或条目。

我正在使用SQL Server 2014

修改

为了任何伪代码:

基准表=

SomeTable

输出表=

SomeView

2 个答案:

答案 0 :(得分:2)

您可以创建如下所示的功能

USE DBName; 
GO
Create Function [dbo].[RemoveNonAlphaNumericCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

Declare @KeepValues as varchar(50)
Set @KeepValues = '%[^a-z0-9]%'
Set @Temp = LOWER(@Temp)
While PatIndex(@KeepValues, @Temp) > 0
    Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

Return @Temp
End

您可以在创建视图时使用该功能

USE DBName; 
GO
CREATE VIEW SomeView
AS
SELECT SomeID, [dbo].[RemoveNonAlphaNumericCharacters](SomeName) as SomeAlias
FROM SomeTable ; 
GO
-- Query the view
SELECT *
FROM SomeView;

答案 1 :(得分:1)

有一些方法可以让它像REPLACE字符串一样,让FUNCTION替换字符串,我们也可以使用正则表达式

     - 

        HashMap<String, String> paramMap = new HashMap<>();
                           paramMap.put("user_id", user_id);
                           paramMap.put("latitude","10");
                           paramMap.put("longitude","70");

                           RequestParams params = new RequestParams(paramMap);
                           try {
                               params.put("image", user_image);
                           } catch (FileNotFoundException e) {
                               Log.d("FNF", ":->" + e.toString());
                           }

          AsyncHttpClient client = new AsyncHttpClient();
             client.post(url,params,ResponseHandler(){

          //Overridden Methods
      }
  );