sql >> データベース >  >> RDS >> Oracle

T-SQLクエリをOracleがサポートするクエリに変換するためのサポートが必要です

    これでスコアを乗算しているので、最初に、一致するコードがない場合のスコアを決定する必要があります。次に、考えられるすべてのコードを独立したグループに分割する必要があります。つまり、結果は他のグループメンバーに依存しません。これが(1,2,4)と(8)です。そして、すべてのグループのルールを定義します。だから

    SELECT [id] ,[name],r = 
      -- At least one of values needed to get score > 0
      MAX(CASE WHEN code IN (1,2,4, 8) THEN 1.0  ELSE 0.0 END) *
      -- Now rules for every independent set of codes. Rule should return score if matched or 1.0 if not matched
      -- (1,2,4)
      coalesce(MAX(CASE WHEN [code] IN (1,2,4) THEN 0.70 END), 1.0 ) *
      -- (8) 
      coalesce(MAX(CASE WHEN [code] IN (8) THEN 0.75 END), 1.0)
      -- more ?
      FROM  (values (1, 'ali',4)
            ,(1, 'ali',1)
            ,(1, 'ali',8)
            ,(1, 'ali',2)
            ,(2, 'sunny',1)
         ,(4, 'arslan',4)) as t(id, name,code)
      GROUP BY id, name;
    


    1. PHPのクエリで予約済みのmysqlワードをエスケープする方法は?

    2. PL/SQLのシフト演算子

    3. mysqlのビット単位のシフト

    4. 開いているMySQL接続の数を確認するにはどうすればよいですか?