Нужна помощь в создании запроса - PullRequest
1 голос
/ 13 июня 2011

У меня есть сомнения в создании запроса.

Какой путь лучше в этих двух

Например: 1

DECLARE @SQLQuery varchar(MAX)
SET @SQLQuery='Select tab1.Name,tab2.Name From table1 INNER JOIN table2 ON table2.ID=table1.ID'

IF @Val=0
 SET @SQLQuery=@SQLQuery+' where table1.ID>5'
ELSE
 SET @SQLQuery=@SQLQuery+' where table2.ID>5'

Например, 2:

IF @Val=0
BEGIN
Select tab1.Name,tab2.Name 
From table1 
INNER JOIN table2 
    ON table2.ID=table1.ID
WHERE table1.ID>5
END
ELSE
BEGIN
Select tab1.Name,tab2.Name 
From table1 
INNER JOIN table2 
    ON table2.ID=table1.ID
WHERE table2.ID>5
END

Ответы [ 2 ]

1 голос
/ 13 июня 2011
    Select tab1.Name,tab2.Name 
From table1 
INNER JOIN table2 
    ON table2.ID=table1.ID
WHERE (@Val=0 AND table1.ID>5) OR (@Val!=0 AND table2.ID>5)
0 голосов
/ 13 июня 2011
IF @Val = 0
BEGIN
    Select T1.Name From
    (
        Select Name From table1 Where Id > 5
    )T1
    INNER JOIN table2 T2 ON T2.ID = T1.ID

END
ELSE
BEGIN
    Select T2.Name From
    (
        Select Name From table2 Where Id > 5
    )T2
    INNER JOIN table1 T1 ON T1.ID = T2.ID
END

Таким образом, мы должны сначала отфильтровать значения, а затем объединить их.

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