[英]Remove Non Numeric Values Within SQL Select Statement
我在數據庫列VALUE中有一個值:
C_4327
我需要從中剝離非數字文本,以便僅保留數字。 我試過在SQL中使用REPLACE函數,但不是我不想替換,只需將它們剝離即可。 我以前使用PHP來做到這一點:
preg_replace("/[^0-9]/","",$row['VALUE']);
我正在SELECT語句中檢索值。
您的幫助將不勝感激。
提前致謝
如果要在字符串末尾獲取數字,則可以使用以下奧秘方法:
select reverse(reverse(value) + 0) as NumberAtEnd;
在您的情況下:
value
='C_4327' reverse(value)
='7234_C' reverse(value) + 0
= 7234 reverse(reverse(value) + 0)
='4327' 您可以創建一個類似的功能。
CREATE FUNCTION 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(@strAlphaNumeric,0)
END
GO
然后按如下所示調用函數
SELECT GetNumeric('123456789blahblahblah') AS filedname FROM your_table
您會得到答案: 123456789
簡單方法:子字符串如何...
select substr( value, 3 ) from mytable;
它適用於您的示例-但不確定您的真實數據是否更復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.