1

テーブルの行には、「.」、「;」、「、」などの非アルファベット文字で開始および終了するデータがあるためです。string からそれらを削除する必要があります。これどうやってするの ?各パターンを検索してフィルタリングする必要がある like ステートメントを使用してこれを行いました。他に良い方法はありますか?

select lrno,free_text ,
(CASE 
 WHEN free_text LIKE ',%'   THEN SUBSTRING (free_text,2,len(free_text)-1)
 END) FREE_TEXT_TRIM
from vwLRClass3_FreeText 
ORDER BY PROPERTY_TEXT_VALUE
4

1 に答える 1

0

以下の関数は、文字列から他のアルファベット以外の文字を削除します。

IF object_id('dbo.GetAlphachars') is not NULL
   DROP FUNCTION dbo.GetNumeric 
GO

CREATE FUNCTION dbo.GetAlphachars (@strAlphachars VARCHAR(256)) 
RETURNS VARCHAR(256)
AS

BEGIN
DECLARE  @intAlpha INT
SET      @intAlpha = PATINDEX('%[^a-z]%', @strAlphachars )

BEGIN
WHILE    @intAlpha > 0
BEGIN
SET @strAlphachars  = STUFF(@strAlphachars, @intAlpha, 1, '' )
SET @intAlpha = PATINDEX('%[^a-z]%', @strAlphachars )
END
END
RETURN ISNULL(@strAlphachars ,0)
END
GO

例。

CREATE table vish(val varchar(20));

INSERT into vish values('.,,.?ishhh>...,');

SELECT dbo.getalphachars(val) from vish;

result
------------
ishhh
于 2012-06-07T07:18:13.613 に答える