2017-02-20 1 views
-2

IDにゼロを追加または削除するクエリがあります。どのように私はこのクエリを使用して 'ID' を削除することができSQLクエリから 'ID'を削除します

ID1230034 

SELECT 
    LEFT(STUFF(SystemID + 
       REPLICATE('0', 9), 7, 0, REPLICATE('0', 9 - LEN(SystemID))), 9) as OBJECT 
FROM 
    Products 

だから、結果はこのようなものでしょうか?だから、次のようになります。すべての助けを

1230034 

感謝:)

+1

多分)(置き換えますか? – dean

+0

その部分を捨ててください。 – jarlh

答えて

2

あなたは空の文字列に文字列の最初の2つの文字を置き換えるためにstuffを使用することができます。

SELECT STUFF(LEFT(STUFF(SystemID + 
REPLICATE('0',9),7,0,REPLICATE('0',9-LEN(SystemID))),9), 1, 2, '') as OBJECT 
FROM Products 
+0

ありがとう:)それは魅力のように働いています。 –

1

利用機能を交換してください。接頭語/接尾数字以外の文字に対応できる

SELECT REPLACE(LEFT(STUFF(SystemID + 
REPLICATE('0',9),7,0,REPLICATE('0',9-LEN(SystemID))),9),'ID','') as OBJECT from Products 
0

より一般的なソリューションは、here見つけることができます:

CREATE FUNCTION dbo.udf_GetNumeric 
(
    @strAlphaNumeric VARCHAR(256) 
) 
RETURNS VARCHAR(256) 
AS 
BEGIN 
    DECLARE @intAlpha INT 
    SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric) 

    WHILE @intAlpha > 0 
    BEGIN 
     SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '') 
     SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric) 
    END 

    RETURN ISNULL(@strAlphaNumeric,0) 
END 
GO 

使用法:

SELECT dbo.udf_GetNumeric(SystemID) 
from from Products 
関連する問題