在 Teradata 中对多个值使用 like
Using like in Teradata for multiple values
我有一个要求,我必须 select 基于类似条件的 table 多个用户名。
UserName_Table:
Username_column
--------
Nicky
Nolan
Megan
Fox
Federar
Fager
查询将是:
Select Username_column
from UserName_Table
where Username_column like Any ('N%','Megan');
这将给出结果:
Username_column
--------
Nicky
Nolan
Megan
问题来了:我想把 ('N%','Megan') 放在一个 table 中,它将由业务用户填充。说 table User_Filter.
User_Filter_Table:
User_Filter_column
-----------------
N%
Megan
我已如下更改我的查询以从 table 获取过滤器。
Select Username_column
from UserName_Table
where Username_column like Any (Select User_Filter_column from User_Filter_Table);
奇怪的是,结果如下:
Username_column
--------
Megan
为什么查询跳过了 N%?
有人可以帮忙吗?
感谢提前的帮助。
谢谢
桑托斯
LIKE
不会 忽略尾随空格。
'Nicky' LIKE 'N% ' -> false
'Nicky ' LIKE 'N% ' -> true
将数据类型更改为 VarChar
或添加 TRIM
:
where Username_column like Any (Select TRIM(TRAILING FROM User_Filter_column) from User_Filter_Table);
我有一个要求,我必须 select 基于类似条件的 table 多个用户名。
UserName_Table:
Username_column
--------
Nicky
Nolan
Megan
Fox
Federar
Fager
查询将是:
Select Username_column
from UserName_Table
where Username_column like Any ('N%','Megan');
这将给出结果:
Username_column
--------
Nicky
Nolan
Megan
问题来了:我想把 ('N%','Megan') 放在一个 table 中,它将由业务用户填充。说 table User_Filter.
User_Filter_Table:
User_Filter_column
-----------------
N%
Megan
我已如下更改我的查询以从 table 获取过滤器。
Select Username_column
from UserName_Table
where Username_column like Any (Select User_Filter_column from User_Filter_Table);
奇怪的是,结果如下:
Username_column
--------
Megan
为什么查询跳过了 N%?
有人可以帮忙吗?
感谢提前的帮助。
谢谢 桑托斯
LIKE
不会 忽略尾随空格。
'Nicky' LIKE 'N% ' -> false
'Nicky ' LIKE 'N% ' -> true
将数据类型更改为 VarChar
或添加 TRIM
:
where Username_column like Any (Select TRIM(TRAILING FROM User_Filter_column) from User_Filter_Table);