Programmer
Programmer

Reputation: 723

Dynamic appending constraints in SQL query

I have this SQL

SELECT devudp1.deviceoid,devudp1.valueType
  FROM DeviceUdpValues devUDP1 
 WHERE devudp1.udpname='TestUDP' 
   and <<either bdvalue or string value based on user selected value datatype>>

Here in the Query based on the devudp1.valueType I want to append below attribute

If the valueType is 3 then I want to append my above select clause with devudp1.bdvalue ='10', else it should be appended by devudp1.bdvalue = 'Hello'

So the above query when valueType is 3 will look like

SELECT devudp1.deviceoid,devudp1.valueType
  FROM DeviceUdpValues devUDP1
 WHERE devudp1.udpname='TestUDP'
   AND devudp1.bdvalue = '10'

else it will look like

SELECT devudp1.deviceoid,devudp1.valueType
  FROM DeviceUdpValues devUDP1
 WHERE devudp1.udpname='TestUDP'
   AND devudp1.stringValue = 'Hello'

Can anyone suggest me how to put this logic in place

Upvotes: 1

Views: 206

Answers (1)

Chandu
Chandu

Reputation: 82943

Try this:

SELECT  devudp1.deviceoid,devudp1.valueType
  FROM  DeviceUdpValues devUDP1 
 WHERE  devudp1.udpname='TestUDP'
   AND  (
         (<USER-SELECTED-VALUE> = 3 AND devudp1.bdvalue ='10') OR
         (<USER-SELECTED-VALUE> <> 3 AND devudp1.stringvalue ='Hello') 
        )

Upvotes: 3

Related Questions