选择包含特定字符和4位数字的配置单元行

时间:2018-07-05 10:31:06

标签: sql regex hive

我需要从表中选择所有行,其中列colA的值类似于'Pddd'。即,如果该列之后有类似P的数据和4位数字,我需要选择该行。 我正在使用以下查询。但是它无法选择正确的值。

select * from tableName where colA is not null and colA <> '' and colA like '%P[0-9]{4}%'

2 个答案:

答案 0 :(得分:0)

使用rlike

select *
from tableName
where colA rlike 'P[0-9]{4}';

您不需要与NULL''进行比较,因为它们与模式不匹配。

请注意,正则表达式会在字符串中的任意位置找到模式。如果您想要的值恰好是该格式的五个字符,请使用锚点:

where colA rlike '^P[0-9]{4}$';

答案 1 :(得分:0)

知道了..

Public Function DateNextWeekday( _
  ByVal datDate As Date, _
  Optional ByVal bytWeekday As Byte = vbMonday) _
  As Date

' Returns the date of the next weekday, as spelled in vbXxxxday, following datDate.
' 2000-09-06. Cactus Data ApS.

  ' No special error handling.
  On Error Resume Next

  DateNextWeekday = DateAdd("d", 7 - (Weekday(datDate, bytWeekday) - 1), datDate)

End Function