在 SQL Server 中,您可以使用内置的函数来执行类似的逻辑。以下是在 SQL Server 中判断字符串是否为数字的几种方法:
使用 ISNUMERIC 函数:
sql
DECLARE @value VARCHAR(50) = '123';
IF ISNUMERIC(@value) = 1
BEGIN
-- 字符串是一个数字
END
使用正则表达式(通过 LIKE 运算符):
sql
DECLARE @value VARCHAR(50) = '123';
IF @value LIKE '%[^0-9]%'
BEGIN
-- 字符串不是一个数字
END
使用PATINDEX()函数
SELECT
CASE WHEN PATINDEX('%[^0-9]% ', YourColumn) = 0 THEN '是数字' ELSE '不是数字' END AS Result
FROM YourTable;
使用 TRY_CAST 或 TRY_CONVERT 函数(适用于 SQL Server 2012 或更高版本):
sql
TRY_CAST(column_name AS data_type)
TRY_CONVERT(data_type, column_name)
DECLARE @value VARCHAR(50) = '123';
IF TRY_CAST(@value AS INT) IS NOT NULL
BEGIN
-- 字符串是一个数字
END