SQL SELECT WHERE字符串以Column结尾

时间:2014-08-20 20:18:05

标签: sql sql-server select sql-like

我在SQL Server 2012中有这个表:

Id INT 
DomainName NVARCHAR(150)

该表具有这些DomainName值

  1. google.com
  2. microsoft.com
  3. othersite.com
  4. 这个值:

    mail.othersite.com
    

    我需要选择字符串以列值结尾的行,对于此值,我需要获取行no.3 othersite.com

    这是这样的:

    DomainName Like '%value' 
    

    但反过来......

    'value' Like %DomainName
    

3 个答案:

答案 0 :(得分:48)

您可以使用此类查询:

SELECT * FROM TABLE1
WHERE 'value' LIKE '%' + DomainName

答案 1 :(得分:1)

它适用于 mysql 服务器。 [ LIKE '%' || value ] 效果不佳,因为当 value 以数字开头时,就像不返回 true 一样。

SELECT * FROM TABLE1 WHERE DomainName like CONCAT('%', value)

答案 2 :(得分:0)

在Oracle中,可以将REGEXP_LIKE字符串函数用于搜索的字符串开始/结束。此函数的第一个参数是表达式/源字符串,第二个参数是模式/搜索字符串。将Dollar $用作值的结尾,将^用作值的开头。例如

select * from TABLE1 where REGEXP_LIKE(DomainName, :value ||'$');

如果在不同值之间具有OR条件,则使用以下管道|语法。

select * from TABLE1 where REGEXP_LIKE(DomainName, 'value1$|value2$|value2$');

Refer this link for more info on REGEXP_LIKE string function