いこの作品SQL LIKE条件
SELECT color
FROM rawdata
WHERE color LIKE (
SELECT TOP 1 color_condition
FROM rules
WHERE rules_id=1
)
ような何かルール1のcolor_conditionがB%
が、これは生データcolor = 'Blue'
からエントリを返しますでしょうか?
いこの作品SQL LIKE条件
SELECT color
FROM rawdata
WHERE color LIKE (
SELECT TOP 1 color_condition
FROM rules
WHERE rules_id=1
)
ような何かルール1のcolor_conditionがB%
が、これは生データcolor = 'Blue'
からエントリを返しますでしょうか?
はい。
少なくともSQL Serverでそれはありません、あなたがTOP
WITH rawdata(color) As
(
SELECT 'Blue' UNION ALL SELECT 'Red'
), rules(color_condition,rules_id) AS
(
SELECT 'B%',1
)
SELECT color FROM rawdata
WHERE color LIKE (SELECT TOP 1 color_condition
FROM rules WHERE rules_id=1)
戻り
color
-----
Blue
からの質問への答えは「イエス」であることを利用しているように見えますが、私はかしらそれはあなたの疑いの原因となっているあなたの特定のSQL構造です。個人的には、サブクエリで中断された述語が見えない方が好きです。これを読むのが簡単かどうかを確認してください。
SELECT D1.color
FROM rawdata AS D1
WHERE EXISTS (
SELECT *
FROM rules AS R1
WHERE D1.color LIKE R1.color_condition
AND R1.rules_id = 1
);
ありがとうございます。テストするSQL Serverはありません。まだダウンロードしています。 – Cilvic
@Cilvic - BTWあなたは[私の答えの中の1つのような]いくつかの特別なクエリをテストすることができます(http://data.stackexchange.com/stackoverflow/q/94831/)[http://data.stackexchange.com/stackoverflow /query/new](http://data.stackexchange.com/stackoverflow/query/new) –