0

こんにちは、私はこの MS SQL スクリプトを素晴らしい MS SQL スキルで作成しましたが、どうすればそれを MySQL で動作させることができますか? 一部の文字列関数で失敗しています :( MySQL をよく知らない!

SELECT i.id as ID, e.code as EMPCODE, lower(e.email_address) as EMAIL
from load_incidents i , dim_employee e
WHERE
(     (i.involvedemail = e.email_address)
or    (replace(lower(e.preferred_name+e.last_name),' ', '') = replace(lower(i.involvedname),' ', ''))
or    (replace(lower(e.preferred_name+e.last_name),' ', '') like replace(lower(i.involvedname),' ', '')+'%')
or    (replace(lower(e.first_name+e.last_name),' ', '') = replace(lower(i.involvedname),' ', ''))
or    (replace(lower(e.first_name+e.last_name),' ', '') like replace(lower(i.involvedname),' ', '')+'%')
or    (replace(lower(e.employee_name),' ','') = replace(lower(i.involvedname),' ',''))
)
and charindex(' ',e.first_name) = 0
and (i.involvedemail= 'none available' or i.involvedemail is null or i.involvedemail = '')
UNION
SELECT i.id as ID, e.code as EMPCODE, lower(e.email_address) as EMAIL
from load_incidents i , dim_employee e
WHERE
(     (i.involvedemail = e.email_address)
or    (replace(lower(e.preferred_name+e.last_name),' ', '') = replace(lower(i.involvedname),' ', ''))
or    (replace(lower(e.preferred_name+e.last_name),' ', '') like replace(lower(i.involvedname),' ', '')+'%')
or    (replace(lower(left(e.first_name,charindex(' ',e.first_name)-1) + e.last_name),' ', '') = replace(lower(i.involvedname),' ',''))
or    (replace(lower(e.employee_name),' ','') = replace(lower(i.involvedname),' ',''))
)
and charindex(' ',e.first_name) > 1
and (i.involvedemail= 'none available' or i.involvedemail is null or i.involvedemail = '')
4

3 に答える 3

4

あなたの問題はcharindex機能です、その目的のために(charindexの代わりに)locateを使用してください:

LOCATE(' ',e.first_name)
于 2012-06-25T06:14:23.513 に答える
0

多くの機能は同じです。使用できるMySQL 文字列関数のリストを次に示します。

于 2012-06-25T06:12:43.543 に答える
0

Full Convert Enterpriseを試してみましたが、かなり大きな成功を収めました。速くて簡単で、私の仕事はうまくいきました。役立つかもしれませんので試してみてください。

また、サードパーティのツールに頼るのではなく、すべてが正しいことを確認するために、これを自分で行うのがおそらく最善です (2 つのコードの違いを理解するという追加の利点もあります)。ただし、ここで入手できる SQL to MySQL ツールを使用できます。

于 2012-06-25T06:18:29.003 に答える