0

だから私はSQLが初めてです。このファイルが Oracle と SQL Server の両方で機能することを確認する必要があります。これには、SQL Tools (Oracle) と sQL Server Management Studio を使用します。

私は PL/SQL と TSQL の違いを学び始めています (私はそう思います)。

さて、私はこのコードを持っていますが、一方 (SQL ツール) では機能しますが、もう一方では機能しません。そして、私はその理由を知りません。どちらも機能し、同じコードである必要があります。

    SELECT DISTINCT * FROM
(
SELECT
somestuff
WHERE mu.id = {my_users_id}
)
WHERE (1=1)
{{parent:ParentUsers:mu_ID}}

今、なぜそれがうまくいかないのかわかりません。WHERE句に問題があると言われています。行をコメントアウトしてWHERE mu.id = {my_users_id}削除すると{{parent:ParentUsers:mu_ID}}、SQL Tools で機能します。ただし、Management Studio にはありません。

なんで?そして、ここで何が起こっているのですか?

コードをコメントアウトすることのポイントは、コードが読み取られないようにすることだと思っていましたが、状況によっては読み取られることがあるという印象を受けているようです?? 私はここで間違っていますか?ありがとう

編集:コードの欠如が役に立たないことに気付いたので、ここでいくつかの変更を試みて、実際のコードを可能な限り表現しました。

    SELECT DISTINCT * FROM
(
SELECT
eb2.id AS EB_ID,
ebmystuff_pkg.user_entry_count(EB2.user_code, EB2.address_code, EB2.other_column) ENTRIES,
eb.other_column AS OTHER_COLUMN
FROM MY_TABLE mt
WHERE mu.id = {my_users_id}
)
WHERE (1=1)
{{parent:ParentUsers:mu_ID}}
4

2 に答える 2

0

あなたのコードで最初に間違っていると思うのは、次のものが欠けていることです。

SELECT DISTINCT * FROM
(
  SELECT somestuff
  **FROM** sometable mu
  WHERE mu.id = {my_users_id}
)
WHERE (1=1)
{{parent:ParentUsers:mu_ID}}

ここで、SQL Server では {} は何の意味もないことを知っています...そこに変数を追加するには、@my_users_id を使用する必要があります。

于 2016-03-09T12:49:02.347 に答える
0

答えは、エイリアスを追加することであることがわかりました。

やった

   SELECT DISTINCT * FROM
(
  SELECT somestuff
  **FROM** sometable mu
 -- WHERE mu.id = {my_users_id}
)m
WHERE (1=1)
于 2016-03-09T15:18:21.573 に答える