SQL 喜欢过滤
SQL Like filtering
欢迎光临!
我目前正在研究一些 C#,我遇到了一个相当愚蠢的问题。显然,我需要用数据库中的一些数据填充 ListBox。问题是 varchar 过滤。我需要过滤代码并只显示正确的代码。
代码示例为:RRTT, RRTR, RT12, RQ00, R100, R200, R355, TY44, GG77 etc. Four digit codes.
我设法只用简单的 select * from table1 where code_field like 'R%'
过滤 R 代码,但我得到了 R000 和 RQ10,我只需要得到 R 代码后跟数字。
所以从例子来看:
RRTT, RRTR, RT12, RQ00, R100, R200, R355
仅:
R100, R200, R355
有什么想法可以添加到 like 'R%'
中吗?
like 'S[0-9%]'
朋友想出了办法,还是谢谢
在SQL服务器中,可以使用通配符。这是一种方法:
where rcode like 'R___' and -- make sure code has four characters
rcode not like 'R%[^0-9]%' -- and nothing after the first one is not a number
或者:
where rcode like 'R[0-9][0-9][0-9]'
在其他数据库中,您通常会使用正则表达式而不是 like
.
的扩展来执行此操作
此处使用类似
的解决方案
SELECT *
FROM (
VALUES ( 'R123'),
( 'R12T' ),
( 'RT12' )
) AS t(test)
where test like 'R[0-9][0-9][0-9]'
欢迎光临!
我目前正在研究一些 C#,我遇到了一个相当愚蠢的问题。显然,我需要用数据库中的一些数据填充 ListBox。问题是 varchar 过滤。我需要过滤代码并只显示正确的代码。
代码示例为:RRTT, RRTR, RT12, RQ00, R100, R200, R355, TY44, GG77 etc. Four digit codes.
我设法只用简单的 select * from table1 where code_field like 'R%'
过滤 R 代码,但我得到了 R000 和 RQ10,我只需要得到 R 代码后跟数字。
所以从例子来看:
RRTT, RRTR, RT12, RQ00, R100, R200, R355
仅:
R100, R200, R355
有什么想法可以添加到 like 'R%'
中吗?
like 'S[0-9%]'
朋友想出了办法,还是谢谢
在SQL服务器中,可以使用通配符。这是一种方法:
where rcode like 'R___' and -- make sure code has four characters
rcode not like 'R%[^0-9]%' -- and nothing after the first one is not a number
或者:
where rcode like 'R[0-9][0-9][0-9]'
在其他数据库中,您通常会使用正则表达式而不是 like
.
此处使用类似
的解决方案SELECT *
FROM (
VALUES ( 'R123'),
( 'R12T' ),
( 'RT12' )
) AS t(test)
where test like 'R[0-9][0-9][0-9]'