したがって、以下の2つのクエリがあります。
ただし、最初のクエリは、いくつかの値をハードコーディングしたwhere条件で機能します。したがって、2番目のクエリでは、同じ値を入力しましたが、それらを変数として宣言しました。しかし、実行しても何も返されません。わかりませんか?
最初のクエリ
declare @fxPair nvarchar(max) = ''
select @fxPair = @fxPair + '[' + Currency + '], '
from myTbl
where DateH = '2016-11-14' and Code in ('ABV', 'ABG')
group by Currency
order by Currency
set @fxPair = SUBSTRING(@fxPair, 1, len(@fxPair) - 1)
print @fxPair
2番目のクエリ
declare @Code nvarchar(10) = 'ABV, ABG'
declare @DateH nvarchar(20) = '2016-11-14'
declare @fxPair nvarchar(max) = ''
select @fxPair = @fxPair + '[' + Currency + '], '
from myTbl
where DateH = @DateH and Code in (@Code) -- this line doesn't work
group by Currency
order by Currency
set @fxPair = SUBSTRING(@fxPair, 1, len(@fxPair) - 1)
print @fxPair
あなたはこのようにそれを試すことができます:
declare @code table (code varchar(10))
declare @DateH nvarchar(20) = '2016-11-14'
declare @fxPair nvarchar(max) = ''
insert into @code values ('ABV'), ('ABG')
select @fxPair = @fxPair + '[' + Currency + '], '
from myTbl
where DateH = @DateH
and Code in (select code from @code)
group by Currency
order by Currency
set @fxPair = SUBSTRING(@fxPair, 1, len(@fxPair) - 1)
print @fxPair
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加