Kam*_*biz 4 regex sql t-sql sql-server
例如,类似:
SELECT * FROM myTable WHERE myColumn LIKE '[0-9]n.[0-9]n'
当然,我知道上面的语法行不通,但我试图解释一下:n 个数字,后跟一个句点,然后是 n 个数字。谢谢
您可以对无符号十进制值使用以下模式:
SELECT *,
CASE
WHEN (x.Col1 LIKE '%[0-9]%.%[0-9]%' /*OR x.Col1 LIKE '.%[0-9]%' OR x.Col1 LIKE '%[0-9]%.' OR x.Col1 LIKE '%[0-9]%'*/)
AND x.Col1 NOT LIKE '%[^0-9.]%'
THEN 1 ELSE 0
END AS IsDecimal,
ISNUMERIC(x.Col1) AS [IsNumeric]
FROM (
SELECT '1.23' UNION ALL SELECT '.23' UNION ALL SELECT '1.' UNION ALL SELECT '123' UNION ALL
SELECT NULL UNION ALL SELECT '' UNION ALL SELECT '1A.23' UNION ALL SELECT '1.2A3' UNION ALL SELECT 'A.B' UNION ALL
SELECT '.' UNION ALL SELECT '$'
) x(Col1)
/*
Col1 IsDecimal IsNumeric
----- ----------- -----------
1.23 1 1
.23 0 1
1. 0 1
123 0 1
NULL 0 0
0 0
1A.23 0 0
1.2A3 0 0
A.B 0 0
. 0 1
$ 0 1
*/
Run Code Online (Sandbox Code Playgroud)
如果取消注释/*OR x.Col1 LIKE '.%[0-9]%' OR x.Col1 LIKE '%[0-9]%.' OR x.Col1 LIKE '%[0-9]%'*/,则将.23 , 1. and 123被视为(也)有效的十进制值。
| 归档时间: |
|
| 查看次数: |
9266 次 |
| 最近记录: |