检查字符串中的两位十进制数字

akh*_*rot 9 sql sql-server select sql-server-2008

我有两套记录

第1组:

-11
-12
-12 AN    
''    
-134
-125
+135
Run Code Online (Sandbox Code Playgroud)

第2集:

1.15
1.1
Run Code Online (Sandbox Code Playgroud)

在Set 1中,我需要检查哪些值为空''或以+符号开头且大于125.

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

上述集的示例输出:

''
+135
1.1
Run Code Online (Sandbox Code Playgroud)

Sta*_*vas 3

在 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 '%._'
Run Code Online (Sandbox Code Playgroud)

输出:

''  -- blank
+135
1.1
Run Code Online (Sandbox Code Playgroud)

SQL小提琴