正在获取 SQL 没有特殊字符、空格和带有
Getting SQL View with no special characters, spaces and with
基地Table:
Someid | SomeName
_______________________________
1 | Name -,#
2 | Something else ,-'
期望的输出,最好在视图中:
SomeName 的别名 = SomeAlias
SomeAlias
________________
name
somethingelse
所以我的问题是如何创建一个视图来删除所有古怪的字符和空格(不是数字)并将所有内容更改为小写。
我不想以任何方式更改 SomeName 列或条目。
我正在使用 SQL Server 2014
编辑:
为了任何伪代码:
基础table =
SomeTable
输出Table =
SomeView
您可以创建如下函数,
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;
有一些方法可以让它像 REPLACE string 一样,创建 FUNCTION 来替换 string 我们也可以使用正则表达式
DECLARE @regex INT,@string varchar(100)
SET @string='india!@#$%^&*()_+<>?:"{}| indian'
SET @regex = PATINDEX('%[^a-zA-Z0-9 ]%', @string)
WHILE @regex > 0
BEGIN
SET @string = STUFF(@string, @regex, 1, ' ' )
SET @regex = PATINDEX('%[^a-zA-Z0-9 ]%', @string)
END
SELECT @string
基地Table:
Someid | SomeName
_______________________________
1 | Name -,#
2 | Something else ,-'
期望的输出,最好在视图中:
SomeName 的别名 = SomeAlias
SomeAlias
________________
name
somethingelse
所以我的问题是如何创建一个视图来删除所有古怪的字符和空格(不是数字)并将所有内容更改为小写。
我不想以任何方式更改 SomeName 列或条目。
我正在使用 SQL Server 2014
编辑:
为了任何伪代码:
基础table =
SomeTable
输出Table =
SomeView
您可以创建如下函数,
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;
有一些方法可以让它像 REPLACE string 一样,创建 FUNCTION 来替换 string 我们也可以使用正则表达式
DECLARE @regex INT,@string varchar(100)
SET @string='india!@#$%^&*()_+<>?:"{}| indian'
SET @regex = PATINDEX('%[^a-zA-Z0-9 ]%', @string)
WHILE @regex > 0
BEGIN
SET @string = STUFF(@string, @regex, 1, ' ' )
SET @regex = PATINDEX('%[^a-zA-Z0-9 ]%', @string)
END
SELECT @string