2

私は次TELEPHONE_NUMBERvarcharようなものを持っています:

Value : "1112223344"

そして、次のように値に「-」を追加する必要があります。

111-222-33-44

-では、SQL Server ストアド プロシージャで電話番号の値を追加するにはどうすればよいでしょうか。

CREATE PROCEDURE SP_TELEPHONE_NUMBER
   (@TELEPHONE_NUMBER VARCHAR(4000))
AS
BEGIN
   INSERT INTO DOSYA_ARSIV(TELEPHONE_NUMBER)
   VALUES(@TELEPHONE_NUMBER)
END
4

2 に答える 2

2

代替手段:

select SUBSTRING('1112223344',1,3)+'-'+
       SUBSTRING('1112223344',4,3)+'-'+
       SUBSTRING('1112223344',7,2)+'-'+
       SUBSTRING('1112223344',9,2)

あなたの場合:

CREATE PROCEDURE SP_TELEPHONE_NUMBER
   (@TELEPHONE_NUMBER VARCHAR(4000))
AS
BEGIN
   INSERT INTO DOSYA_ARSIV(TELEPHONE_NUMBER)
   VALUES
   (
       SUBSTRING(@TELEPHONE_NUMBER,1,3)+'-'+
       SUBSTRING(@TELEPHONE_NUMBER,4,3)+'-'+
       SUBSTRING(@TELEPHONE_NUMBER,7,2)+'-'+
       SUBSTRING(@TELEPHONE_NUMBER,9,2)
   )
END

noobob が彼のコメントで述べたように、これを INT タイプ (INT、BIGINT など) として持つことができ、フロントエンドでの表示方法を処理するだけです。たとえば、C# では次のようになります。

TELEPHONE_NUMBER.ToString("###-###-##-##");

別のコメントは、期待される引数を定義するのVARCHAR(4000)は多すぎるということです。それほど悪いことではないかもしれませんが、期待される入力にできるだけ近い引数または変数を定義することは良い点です。あなたの場合、次のようなものVARCHAR(30)で十分だと思います。

于 2013-11-01T07:52:24.833 に答える