Я писал вспомогательный запрос в хранимой процедуре, чтобы получить значения между ордерами, хранящимися как varhar datatype. Когда я запускаю запрос, он показывает:Оператор BETWEEN в SQL Server
Подзапрос возвратил более 1 значения. Это недопустимо, когда подзапрос следует =,! =, <, < =,>,> = или когда подзапрос используется как выражение.
Я немного погуглил и нашел проблему из-за возврата более чем одного значения в подзапрос.
Но в моем случае мне нужны все значения, которые находятся между данным входом. Может кто-нибудь сказать мне, каким образом я могу добиться этого ..
Код:
SELECT ROW_NUMBER()OVER(
ORDER BY po.id) AS SNo ,
pd.Copies AS Quantity,
pd.EstUnitPrice AS UniPrice,
pd.Copies*pd.EstUnitPrice AS Total,
(SELECT value
FROM BibContents
WHERE bibid=pd.BibId
AND sfld='a'
AND tagno='245') AS Title,
(SELECT value
FROM BibContents
WHERE bibid=pd.BibId
AND sfld='a'
AND tagno='020') AS 'ISSN/ISBN',
(SELECT value
FROM BibContents
WHERE bibid=pd.BibId
AND sfld='a'
AND tagno='100')AS Author
FROM [VibrantMas].[dbo].[PoDetails] AS pd
INNER JOIN Porders AS po ON po.Id=pd.PoId
WHERE po.No BETWEEN '000021' AND '000024'
скажите, что, как насчет вашего формата TSQL приятно ... –
Извините за неправильное форматирование запроса. – UniqueChar