您好我需要跳过可能包含文本sql中跳过包含字符串
示例行的行:我有表OUTSTANDING
和我的领域如下。
INVOICENO
AB1
111
ZX3
我需要跳过行包含AB1
和ZX3
,并选择包含111
行我曾尝试此查询
"SELECT * FROM [INT]..OUTSTANDING WHERE INVOICENO NOT LIKE '%[a-z,-]%'";
您好我需要跳过可能包含文本sql中跳过包含字符串
示例行的行:我有表OUTSTANDING
和我的领域如下。
INVOICENO
AB1
111
ZX3
我需要跳过行包含AB1
和ZX3
,并选择包含111
行我曾尝试此查询
"SELECT * FROM [INT]..OUTSTANDING WHERE INVOICENO NOT LIKE '%[a-z,-]%'";
尝试:
"SELECT * FROM [INT]..OUTSTANDING WHERE NOT INVOICENO LIKE '%[0-9]%'";
或
...where INVOICENO not like '%[a-z]%'
除非需要更高级的正则表达式....
源:http://www.sqllion.com/2010/12/pattern-matching-regex-in-t-sql/
Select *
FROM [INT]..OUTSTANDING
WHERE IsNumeric(INVOICENO) = 1
And INVOICENO Is Not NULL
+1试过这个,它的工作原理。简单而有效。 –
尝试以下mothods:
方法1:
SELECT *
FROM [INT]..OUTSTANDING
WHERE InvoiceNo IS NOT NULL
AND ISNUMERIC(InvoiceNo)=1
Mehod 2:
SELECT *
FROM [INT]..OUTSTANDING
WHERE InvoiceNo IS NOT NULL
AND INVOICENO NOT LIKE '%[^0-9]%'
你只想要的数值? – Mihai
我需要选择那些只包含数值的行。 – Rakesh
如果您使用SQL Server 2012并启用了CLR,请检查TRY_PARSE函数。 – Kahn