特定の文字列から場所名を抽出する方法はありますか? 例: string = 'Las Vegas Party at Weekends' または 'Paris fashion updates' 両方の文字列から、次のように出力します: 'Las Vegas' または 'Paris'
ありがとう
特定の文字列から場所名を抽出する方法はありますか? 例: string = 'Las Vegas Party at Weekends' または 'Paris fashion updates' 両方の文字列から、次のように出力します: 'Las Vegas' または 'Paris'
ありがとう
定義済みの場所を含むテーブルを作成します。
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です。
場所のリスト (例: ) を含むテーブルがあると仮定すると、次のlocations (name varchar(100))
ようなことができます。
select name from locations where @input like '%'+name+'%'
入力文字列はどこ@input
にありますか ('Paris fashion updates' など)。
これが実際の例です。
ところで、SQL Server を使用している場合、while
ループなしで単一の文字列で出力を取得するためのトリックを次に示します。
select @output = @output + ' ' + name
from locations where @input like '%'+name+'%'
更新された fiddleを参照してください。