2012-11-01 30 views
5

Tôi muốn tìm nạp dữ liệu dựa trên các key_column trong bảng. Tôi đang có một thủ tục mà tôi đang đi qua nhân vật chính. Nếu khóa là 'A' chỉ những bản ghi có khóa là 'A' sẽ được chọn. Đối với bất kỳ nhân vật chủ chốt khác ngoài 'A', tôi cần tất cả các hồ sơ trừ các hàng với giá trị key_Column 'A'Yêu cầu nếu ở nơi điều kiện SQL

mẫu mã:

select * from tab1 
where 
if (@key_Char = 'A') Then [email protected]_Char 
ELSE key_Column <>@key_Char 
+0

Không phải tất cả các sản phẩm SQL hỗ trợ này (do đó đặt nó trong một chú thích): 'WHERE (key_column = 'A') = (@key_char = 'A')'. –

Trả lời

4

Bạn có thể thử này

select * from tab1 
where (@key_Char = 'A' AND key_Column='A') OR 
     (@key_Char <> 'A' AND key_Column <> 'A') 
+0

Tôi đã chỉnh sửa nó trong khi nó đã bị xóa, hy vọng điều đó là OK. Tôi thấy bạn đã hủy xóa nó cùng một lúc. Tôi nghĩ rằng một 'XOR' sẽ hoạt động tốt ở đây, nếu nó được hỗ trợ. – Kobi

+0

trông giống như câu trả lời đúng. – hazimdikenli

+0

Cảm ơn tất cả .. nó làm việc như nó trông .. – nandyec28

3

Hãy thử:

WHERE (@key_char = 'A' AND key_column = 'A') OR (@key_char <>'A' AND key_column <>'A') 
+0

Xin lỗi, câu trả lời dư thừa, mất quá nhiều thời gian để chỉnh sửa với tab android: ( – ARA