私は以下のクエリを実行しています。クエリでは、ChIDはCatテーブルのカラムではありません。そのために、私は0をChIDとして配置し、それをbigintデータ型に変換して、CatAttの列のデータ型と一致させます。私は、Oracle関連の変更とともにOracleに類似したクエリを実行していると私は結果を得たvarcharをbigintに変換中にエラーが発生しました
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to bigint.
:しかし、私は次のエラーを取得しています。
WITH rg (ID, ChID, Name) AS
(
SELECT
ID,
CAST(0 AS bigint) ChID,
Name
FROM Cat
WHERE ID = 1000
UNION ALL
SELECT
c.ID,
c.ChID,
k.Name
FROM CatAtt c
JOIN rg p ON (c.ChID = p.ID)
JOIN Cat k ON (c.ID = k.ID)
)
SELECT DISTINCT
ka.ID
FROM
rg, Parent app
JOIN
Cat ka ON (ka.ID = app.UserIdentifier)
JOIN
Owner dt ON (dt.ID = app.ID)
WHERE
app.ID = 25773
AND app.aprroved = 0
AND REPLACE(ka.Name, ka.Type + '_', dt.OwnerID + '_') = rg.Name
試し 'CatAtt.ChID'のですか?それは問題のある人かもしれません。 –
CatAtt.ChIDのデータ型はbigintです。 – Pathan
ジョインの1つに数値ではない「VARCHAR」値があります。私は 'app.UserIdentifier'を推測しています。あなたはSQL Server 2012+のために 'TRY_CONVERT()'を使ってどちらを購入するかを知ることができます。そうでなければ、ISNUMERICはあなたがそれをうまく理解しなければiffyなので、少し深く掘り下げなければなりません。 'TRY_CONVERT(bigint、UserIdentifier)がnullの場合、親からUserIdentifierを選択してください。 ' – scsimon