データベース環境では、埋め込まれた数値データを文字列から抽出する必要がある場合があります。次の例を考えてみましょう:
文字列1:003preliminary診断計画 文字列2:Coordination005 文字列3:balance1000sheet
字符串 1: 003Preliminary Examination Plan
字符串 2: Coordination005
字符串 3: Balance1000sheet
文字列1:003 文字列2:005 文字列3:1000
字符串 1: 003
字符串 2: 005
字符串 3: 1000
function dbo.udf_getnumericを作成します
(()
@Stralphanumeric varchar(256)
治す
varcharを返す(256)
として
始める
@intalpha intを宣言します
setalpha = patindex( '%[^0-9]%'、@Stralphanumeric)
始める
@intalpha> 0
始める
@strachanumeric = fort(@stralphanumeric、@intalpha、1、 ''を設定します)
setalpha = patindex( '%[^0-9]%'、@Stralphanumeric)
終わり
終わり
return isnull(trim(@stralphanumeric)、 '0')
終わり
行く
CREATE FUNCTION dbo.udf_GetNumeric
(
@strAlphaNumeric VARCHAR(256)
)
RETURNS VARCHAR(256)
AS
BEGIN
DECLARE @intAlpha INT
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
BEGIN
WHILE @intAlpha > 0
BEGIN
SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
END
END
RETURN ISNULL(TRIM(@strAlphaNumeric), '0')
END
GO
select dbo.udf_getnumeric(column_name) table_name
から
これは、指定された列の指定された文字列のデジタル部分のみを返します。提供されたデータの例では、結果は期待値と一致します:SELECT dbo.udf_GetNumeric(column_name)
from table_name
注:
元のコード003
005
1000
]。 この修正機能は、より明確かつ理解し、維持しやすくなります。 免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3