tôi muốn có một cách tốt để cải thiện mã sql của tôi, tôi phải sử dụng bên trong tham gia khi điều kiện được đáp ứng. Tôi hiện đang sao chép mã:SQL làm bên trong tham gia nếu điều kiện đáp ứng
@SystemMerge bit
if (@SystemMerge=1)
BEGIN
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
INNER JOIN systemTable on systemTable.param2=myTable.param2
END
ELSE
BEGIN
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
END
và tôi muốn làm điều đó trong một cách như thế này:
@SystemMerge bit
BEGIN
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
***//the next 4 lines is not working, but this pseudo of what i want:***
if (@SystemMerge=1)
begin
INNER JOIN systemTable on systemTable.param2=myTable.param2
end
chỉnh sửa: các giải pháp (nhờ @Damien_The_Unbeliever):
LEFT JOIN systemTable ON systemTable.param2=myTable.param2
WHERE
((@SystemMerge=1 AND systemTable.param2 is not null)
OR
(@SystemMerge=0 OR @SystemMerge is null))
hiển thị cho chúng tôi mã không hoạt động. tại sao không phải là nó làm việc những gì lỗi của bạn nhận được? có thể là ví dụ về một số dữ liệu –
Bạn có thể muốn sử dụng sql động – Elmer
Bạn có thể tạo truy vấn động dựa trên điều kiện và thực hiện truy vấn đó sau bằng EXEC (truy vấn). –