类SQL过滤

类SQL过滤,sql,sql-server,tsql,sql-like,varchar,Sql,Sql Server,Tsql,Sql Like,Varchar,欢迎光临 我目前正在研究一些C语言,我遇到了一个相当愚蠢的问题。显然,我需要用数据库中的一些数据填充列表框。问题是varchar过滤。我需要过滤代码并只显示正确的代码 代码示例为:RRTT、RRTR、RT12、RQ00、R100、R200、R355、TY44、GG77等四位代码 我设法用简单的select*从表1中筛选出R代码,其中的code_字段类似于“R%”,但我同时得到R000和RQ10,我需要得到R代码,后面只跟数字 例如: RRTT, RRTR, RT12, RQ00, R100, R

欢迎光临

我目前正在研究一些C语言,我遇到了一个相当愚蠢的问题。显然,我需要用数据库中的一些数据填充列表框。问题是varchar过滤。我需要过滤代码并只显示正确的代码

代码示例为:RRTT、RRTR、RT12、RQ00、R100、R200、R355、TY44、GG77等四位代码

我设法用简单的select*从表1中筛选出R代码,其中的code_字段类似于“R%”,但我同时得到R000和RQ10,我需要得到R代码,后面只跟数字

例如:

RRTT, RRTR, RT12, RQ00, R100, R200, R355
仅:

你知道我应该在“R%”中添加什么吗

朋友想出了解决办法,谢谢你

朋友想出了解决办法,谢谢你

朋友想出了解决办法,谢谢你


朋友提出了解决方案,无论如何谢谢你

在SQL Server中,你可以使用通配符。以下是一种方法:

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
或:


在其他数据库中,您通常会使用正则表达式而不是类似的扩展来执行此操作。

在SQL Server中,您可以使用通配符。以下是一种方法:

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
或:


在其他数据库中,您通常会使用正则表达式而不是类似的扩展来执行此操作。

在SQL Server中,您可以使用通配符。以下是一种方法:

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
或:


在其他数据库中,您通常会使用正则表达式而不是类似的扩展来执行此操作。

在SQL Server中,您可以使用通配符。以下是一种方法:

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
或:


在其他数据库中,通常使用正则表达式而不是like的扩展来实现这一点。

这里使用like解决方案

SELECT *
    FROM (
    VALUES ( 'R123'),
           ( 'R12T' ),
           ( 'RT12' )
    ) AS t(test)
    where test 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]'

这里使用like解决方案

SELECT *
    FROM (
    VALUES ( 'R123'),
           ( 'R12T' ),
           ( 'RT12' )
    ) AS t(test)
    where test 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]'

依赖于数据库管理系统。ANSI SQL不允许[0-9%]regexp部分。@jarlh:它允许-它只是不把它当作正则表达式@Dashovsky您的示例无法使用MSSQL,您的朋友给了您错误的解决方案依赖于dbms。ANSI SQL不允许[0-9%]regexp部分。@jarlh:它允许-它只是不把它当作正则表达式@Dashovsky您的示例无法使用MSSQL,您的朋友给了您错误的解决方案依赖于dbms。ANSI SQL不允许[0-9%]regexp部分。@jarlh:它允许-它只是不把它当作正则表达式@Dashovsky您的示例无法使用MSSQL,您的朋友给了您错误的解决方案依赖于dbms。ANSI SQL不允许[0-9%]regexp部分。@jarlh:它允许-它只是不把它当作正则表达式@Dashovsky您的示例无法用于MSSQL,您的朋友给了您错误的解决方案