私は全く新しいSQLです。勉強しているうちに私は以下の問題を見つけました。In()演算子が機能しない
クエリを実行すると、出力は125,130,131
になります。私はその出力を変数@issueid
に保存しています。
declare @issueid varchar(100)
set @issueid = (
SELECT STUFF(
(
SELECT ','+convert(varchar,ism_id)
FROM table where ism_group_name='TEST_COPY'
FOR XML PATH('')
) ,1,1,''))
しかし、私は、クエリ以下で@issueid
変数を使用するとき、私は奇妙な動作を取得:
- 私は
@issueid='125'
を渡すと私は@issueid='125,130,131'
を渡すと、それは何も出力を示していない結果 - を取得します。
マイクエリ:
SELECT *
FROM
ISSUE_MASTER (NOLOCK),
ORDER_ENTRY_PPDI (NOLOCK)
WHERE ISM_ID= OE_ISSUE_ID
and ism_id=oe_issue_id
and convert(varchar,oe_issue_id) in (@issueid)
AND ISM_STATUS = 0
GROUP BY ISM_ISSUER_NAME,ISM_ISSUE_NAME,OE_ISSUE_ID
助けてください!私が間違っていることは何ですか?
Integerデータ型のために最後に使用したい場合に整数値を文字列として連結するのはなぜですか?代わりに、テーブル変数を使用して課題IDを取得し、それを2番目のクエリで使用します。 –
変数 '@ issueid'はあなたが提供したクエリ以外の場所に必要ですか?そうでなければ、変数に値を格納するのではなく、テーブル 'table'に直接結合します。 – Aquillo