0
SELECT t1.pgrpname, t1.pgrpval, t0.prodname 
FROM tproduct t0 inner join lpropgr l0 on l0.prodsern=t0.prodsern
INNER JOIN tpgroups t1 on t1.pgrsern=l0.pgrsern 
WHERE lower(t1.pgrpname) in ('brand', 'class1', 'display') 
ORDER BY t1.pgrpname collate nocase, t1.pgrpval collate nocase, t0.prodname collate nocase
4

2 に答える 2

0

したがって、答えは、クエリ全体を作成する in ('brand', 'class1', 'display')ために変更することでした。in ('%@') and not('x' == substr(t0.prodname, 1, 1))

SELECT t1.pgrpname, t1.pgrpval, t0.prodname 
FROM tproduct t0 
INNER JOIN lpropgr l0 on l0.prodsern=t0.prodsern 
INNER JOIN tpgroups t1 on t1.pgrsern=l0.pgrsern
WHERE lower(t1.pgrpname) in ('%@') 
AND NOT('x' == substr(t0.prodname, 1, 1)) 
ORDER BY t1.pgrpname collate nocase, t1.pgrpval collate nocase, t0.prodname collate nocase

知りたいと思った人のためだけに。

于 2013-03-08T19:38:30.120 に答える
0

そのSQLが機能するはずです。

     SELECT t1.pgrpname, t1.pgrpval, t0.prodname 
       FROM tproduct t0 inner join lpropgr l0 on l0.prodsern=t0.prodsern
 INNER JOIN tpgroups t1 on t1.pgrsern=l0.pgrsern 
      WHERE lower(t1.pgrpname) in ('brand', 'class1', 'display') 
        AND lower(substr(t0.prodname,1)) != (substr(t0.prodname,1))
   ORDER BY t1.pgrpname collate nocase, t1.pgrpval collate nocase

列の最初の文字を下位バージョンの文字と比較するだけです

編集:申し訳ありませんが、開き括弧を逃しました。

これはチェックするだけですlowercase x

     SELECT t1.pgrpname, t1.pgrpval, t0.prodname 
       FROM tproduct t0 inner join lpropgr l0 on l0.prodsern=t0.prodsern
 INNER JOIN tpgroups t1 on t1.pgrsern=l0.pgrsern 
      WHERE lower(t1.pgrpname) in ('brand', 'class1', 'display') 
        AND lower(substr(t0.prodname,1)) != 'x'
   ORDER BY t1.pgrpname collate nocase, t1.pgrpval collate nocase
于 2013-03-03T13:54:40.030 に答える