sql - 检查字符串中是否有两位十进制数字

标签 sql sql-server sql-server-2008 select

我有两组记录

设置 1:

-11
-12
-12 AN    
''    
-134
-125
+135

第二组:

1.15
1.1

在第 1 组中,我需要检查哪些值是空白 '' 或以 + 符号开头且大于 125。

在 Set 2 中,我需要检查哪些值的小数位数少于两位

上述集合的示例输出:

''
+135
1.1

最佳答案

在 SQL-Server 中可能是这样的:

WITH cte AS (
SELECT Col
FROM set1
WHERE Col = '' OR Col LIKE'+%' AND (CAST(REPLACE(REPLACE(Col,'+',''),'-','') AS INT) > 125)
)
SELECT * FROM cte
UNION ALL
SELECT Col
FROM set2
WHERE Col LIKE '%._'

输出:

''  -- blank
+135
1.1

<强> SQL FIDDLE

关于sql - 检查字符串中是否有两位十进制数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30801449/

相关文章:

sql - SQL 英文查询发生了什么?

sql-server - REFERENTIAL_CONSTRAINTS 中 UNIQUE_CONSTRAINT_NAME 的值不正确

c# - 使用哈希作为主键?

重复键的Mysql group_concat和1个查询中多列的重复计数(查询优化)

php - MYSQL在多个类别上计数(*)

mysql - 我有一个超过 500 列的表,我需要获取每行的总大小以查找有多少行超过特定大小

sql-server - 使用 DateTime 作为主键的 Sql Server

c# - 来自 C# 应用程序的加密

sql-server-2008 - Entity Framework 和 DateTime 的毫秒精度比较

sql - 将复杂的嵌套XML加载到配置单元表