データベースに、数字と英数字の両方を含む列があります。列から数値(6つの数字)のみを取得したい。
データの例:
TEST_123456_Prod
DB111111P
F222222FN
PROD999999_SCF
この列からすべての行を返す select ステートメントを作成し、数値以外はすべてフィルターで除外したいと考えています。
私は SQL Server を使用しているので、おそらく Charindex を使用する必要がありますが、方法がわかりません。
データベースに、数字と英数字の両方を含む列があります。列から数値(6つの数字)のみを取得したい。
データの例:
TEST_123456_Prod
DB111111P
F222222FN
PROD999999_SCF
この列からすべての行を返す select ステートメントを作成し、数値以外はすべてフィルターで除外したいと考えています。
私は SQL Server を使用しているので、おそらく Charindex を使用する必要がありますが、方法がわかりません。
すべての英数字を削除するには、関数を次のように作成できます。
CREATE FUNCTION [dbo].[RemoveAlphaCharacters](@InputString VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@InputString)>0
SET @InputString = STUFF(@InputString,PATINDEX('%[^0-9]%',@InputString),1,'')
RETURN @InputString
END
GO
それを使用して、次のように目的の結果を取得します。
select dbo.RemoveAlphaCharacters(databasename)
from T1;