SQL server判断 字符串首个是否为数字
时间: 2023-09-01 17:08:33 浏览: 109
可以使用SQL Server中的内置函数`ISNUMERIC()`来判断字符串的首个字符是否为数字。具体地,可以使用以下语句:
```
SELECT
CASE
WHEN ISNUMERIC(LEFT('your_string', 1)) = 1 THEN 'True'
ELSE 'False'
END as Is_First_Char_Numeric
```
其中,`your_string`为需要判断的字符串。这个语句会返回一个结果集,其中包含一个名为`Is_First_Char_Numeric`的列,如果字符串的首个字符为数字,则该列的值为`True`,否则为`False`。
相关问题
sqlserver 把字符串是数字转int 不是数字为0
可以使用ISNUMERIC函数来判断字符串是否为数字,然后再使用CASE语句进行转换:
SELECT CASE WHEN ISNUMERIC('123') = 1 THEN CAST('123' AS int) ELSE 0 END
SELECT CASE WHEN ISNUMERIC('abc') = 1 THEN CAST('abc' AS int) ELSE 0 END
第一个查询将返回数字123,第二个查询将返回数字0。
sql判断该字符串是否有除数字其他字符
在SQL中,你可以使用`REGEXP`或`PATINDEX`函数(如果支持正则表达式)来检查一个字符串是否只包含数字。这里有一个基本的示例:
```sql
SELECT
CASE
WHEN REGEXP_LIKE(column_name, '^[0-9]+$') THEN 'String only contains numbers'
ELSE 'String has other characters'
END AS result
FROM table_name;
```
这个查询会检查名为`column_name`的列,如果它只包含数字,返回结果为'String only contains numbers',否则返回'String has other characters'。
如果你的数据库不支持`REGEXP_LIKE`,如SQL Server,可以使用`PATINDEX`函数:
```sql
SELECT
CASE
WHEN PATINDEX('%[^0-9]%', column_name) = 0 THEN 'String only contains numbers'
ELSE 'String has other characters'
END AS result
FROM table_name;
```
这个查询通过查找第一个非数字字符的位置来判断,如果找不到,则说明只有数字。
阅读全文