与sql中的函数类似

时间:2016-07-06 07:15:15

标签: sql

我正在处理查询

(Select d_name from Direction where d_name  SIMILAR TO '(WEST|NORTH)%' )
this gives me the result as 
WEST 1
WEST 2
NORTH 2
WEST 
NORTH

但我希望结果为

WEST
NORTH 

与相同的声明相似。有人请修改相同的查询以获得第二个结果。 感谢

3 个答案:

答案 0 :(得分:3)

(select 'WEST' from Direction where d_name  SIMILAR TO 'WEST%')
UNION
(select 'NORTH' from Direction where d_name  SIMILAR TO 'NORTH%');

答案 1 :(得分:1)

我得到了解决方案

Select d_name 
from Direction 
where d_name  SIMILAR TO '(WEST|NORTH)' 

只需从查询中删除 % 即可。

答案 2 :(得分:1)

如果您使用的是MySQL,因为它没有分割字符串功能,您可以为此创建user defined function,例如下文中描述的那个:

使用该功能,您可以按如下方式构建查询:

SELECT DISTINCT SPLIT_STR(d_name, ' ', 1)
FROM Direction
WHERE d_name SIMILAR TO '(WEST|NORTH)%';

如果您不想使用用户定义的函数,并且您不介意查询更冗长,您还可以执行以下操作:

SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(d_name, ' ', 1), ' ', -1)
FROM Direction
WHERE d_name SIMILAR TO '(WEST|NORTH)%';

免责声明:我基于this解决方案

建立了这个新答案