1

我想知道有没有办法从给定的字符串中提取位置名称?例如字符串 = '拉斯维加斯周末派对' 或 '巴黎时尚更新' 来自我想输出的两个字符串:'Las Vegas' 或 'Paris'

谢谢

4

2 回答 2

2

创建具有预定义位置的表:

CREATE TABLE locations 
  ( 
     [name] VARCHAR(50) 
  ); 

INSERT INTO locations 
            ([name]) 
VALUES      ('Paris'), 
            ('Las Vegas'), 
            ('London'); 

CREATE TABLE [test] 
  ( 
     [input] VARCHAR(max) 
  ) 

INSERT INTO [test] 
            (input) 
VALUES      ('Las Vegas parties at weekends'), 
            ('Paris fashion updates'), 
            ('Paris and London fashion weeks') 

然后将其与输入字符串表连接起来:

SELECT
    t.Input,
    l.Name
FROM 
    Locations AS l
INNER JOIN test AS t ON t.Input LIKE '%' + l.Name + '%'
ORDER BY
    t.Input

这是SQL Fiddle

于 2013-07-17T06:03:57.417 回答
0

假设您有一个包含位置列表(例如locations (name varchar(100)))的表,您可以执行以下操作:

select name from locations where @input like '%'+name+'%'

您的输入字符串在哪里@input(“巴黎时尚更新”等)。

这是一个工作示例

while顺便说一句,如果您使用的是 SQL Server,这里有一个技巧,可以在没有循环的情况下以单个字符串获取输出:

select @output = @output + ' ' + name 
from locations where @input like '%'+name+'%'

请参阅更新的小提琴

于 2013-07-17T05:56:22.403 回答