SQL Server 2005 Как подать данные, используя имя поля альянса - PullRequest
0 голосов
/ 10 июня 2011

Я использую SQL Server 2005 и хочу отфильтровать данные, которые содержат одно имя альянса поля, но я могу закорачивать данные только с помощью переменной альянса поля.

ех.

Select 
     (Select SName from StkMst Where SrNo = StkSrNo ) as StkName 
from  
     CmpMst 
Where 
     StkName like 'MR.'

Если кто-нибудь может мне помочь .........

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Обычно, если выражение сложное и вы не хотите повторять его в предложении WHERE, вам, вероятно, следует извлечь таблицу из этого выбора и применить фильтр к внешнему запросу:

SELECT *
FROM (
  SELECT
    SomeColumn1,
    SomeColumn2,
    SomeExpression AS SomeAlias
  FROM SomeTable
)
WHERE SomeAlias = SomeValue

В вашем конкретном примере фильтр, вероятно, должен быть применен к коррелированному запросу, например:

SELECT
  (
    SELECT SName
    FROM StkMst
    WHERE SrNo = StkSrNo <b>AND StkName LIKE 'MR.'</b>
  ) AS StkName
FROM CmpMst
0 голосов
/ 10 июня 2011

Используйте вот так

Select StkName.SName from (Select SName from StkMst Where SrNo = StkSrNo ) StkName where StkName.SName like 'MR.%'

Также, немного перефразируйте ваш вопрос, который поможет понять, чего именно вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...