Oracle sql查询以仅选择具有匹配表达式的列
伙计们,我有一个包含以下数据的表格Oracle sql查询以仅选择具有匹配表达式的列,sql,oracle,Sql,Oracle,伙计们,我有一个包含以下数据的表格 F$2051032568 F$2051032568 22342342343 3242432432432 5745745 45734554 在编写oracle sql select查询时,我只想获取不以F开头或不包含F的数据$ 请让我知道,如何做到这一点 实际上这很棘手,如果在sql查询的where条件中不使用$,我只需要获取与F$不匹配的数据。试试: select col1 from tabl1 where col1 not like '%F$%'; 我不
F$2051032568
F$2051032568
22342342343
3242432432432
5745745
45734554
在编写oracle sql select查询时,我只想获取不以F开头或不包含F的数据$
请让我知道,如何做到这一点
实际上这很棘手,如果在sql查询的where条件中不使用$,我只需要获取与F$不匹配的数据。试试:
select col1 from tabl1 where col1 not like '%F$%';
我不确定,如果我理解你的编辑:
select col1 from tabl1 where col1 not like ('%F' || chr(36) || '%');
尝试:
我不确定,如果我理解你的编辑:
select col1 from tabl1 where col1 not like ('%F' || chr(36) || '%');
如果只有F$以外的数字,则您可以执行以下操作:
select col1
from tabl1
where instr(col1,'F')=0
如果只有F$以外的数字,则您可以执行以下操作:
select col1
from tabl1
where instr(col1,'F')=0
假设你只需要数字部分。。。 您可以创建一个函数,该函数将使用TO_NUMBER函数计算行值。 如果文本无效,oracle将抛出ORA-01722:无效数字异常
在函数中处理它,然后您可以在选择查询中使用该函数。假设您只需要数字部分。。。 您可以创建一个函数,该函数将使用TO_NUMBER函数计算行值。 如果文本无效,oracle将抛出ORA-01722:无效数字异常
在函数中处理它,然后您可以在选择查询中使用该函数。如果您使用的是诸如Perl之类的脚本语言,其中$%被扩展为可能的内容,则需要转义$ 例如,同样在Perl中,以下操作不起作用:
$select_statment = "select ... from ...where the Column not like '%F$%'";
但这将:
$select_statment = "select ... from ...where the Column not like '%F\$%'";
如果您使用的是诸如Perl之类的脚本语言,其中$%被扩展为可能的内容,则需要转义$ 例如,同样在Perl中,以下操作不起作用:
$select_statment = "select ... from ...where the Column not like '%F$%'";
但这将:
$select_statment = "select ... from ...where the Column not like '%F\$%'";
使用类似regexp_的方法可以直接在where查询中包含正则表达式 假设您只希望由数字组成的记录只用于
select col1 from tab1
where regexp_like(col1, '^[[:digit:]]*$');
如果你想匹配F+一些不是数字的东西,你可以使用
select col1 from tab1
where not regexp_like(col1, 'F[^[:digit:]]');
使用类似regexp_的方法可以直接在where查询中包含正则表达式 假设您只希望由数字组成的记录只用于
select col1 from tab1
where regexp_like(col1, '^[[:digit:]]*$');
如果你想匹配F+一些不是数字的东西,你可以使用
select col1 from tab1
where not regexp_like(col1, 'F[^[:digit:]]');
是否可以使用正则表达式。F后面只有数字吗?F后面可以有任何数字。请解释为什么不能在WHERE子句中使用字符“$”?如果您想返回值F*1234而不是值F$1234,那么在WHERE子句中不使用$似乎很奇怪。@贾斯汀:我猜OP使用的是脚本语言Perl。。。要创建select语句,在Perl中,$将扩展为某物。是否可以使用正则表达式。F后面只有数字吗?F后面可以有任何数字。请解释为什么不能在WHERE子句中使用字符“$”?如果您想返回值F*1234而不是值F$1234,那么在WHERE子句中不使用$似乎很奇怪。@贾斯汀:我猜OP使用的是脚本语言Perl。。。要创建select语句,在Perl中,$将扩展为一些内容。