动态Sql之if用法和in用法示例

  1. (动态查询字段和表名)
  2. <select id="findSensorInfoBySingleArea2" resultType="Map">
  3. selectsh.RecevieDate
  4. <if test="column!=nulland'SoilTemperature1'==column">
  5. ,sh.SoilTemperature1
  6. </if>
  7. <if test="column!=nulland'SoilTemperature2'==column">
  8. ,sh.SoilTemperature2
  9. </if>
  10. <if test="column!=nulland'Soilhumidity1'==column">
  11. ,sh.Soilhumidity1
  12. </if>
  13. <if test="column!=nulland'Soilhumidity2'==column">
  14. ,sh.Soilhumidity2
  15. </if>
  16. <if test="column!=nulland'Soilhumidity3'==column">
  17. ,sh.Soilhumidity3
  18. </if>
  19. <if test="column!=nulland'Soilhumidity4'==column">
  20. ,sh.Soilhumidity4
  21. </if>
  22. <if test="column!=nulland'AirTemperature'==column">
  23. ,sh.AirTemperature
  24. </if>
  25. <if test="column!=nulland'AirHumidity'==column">
  26. ,sh.AirHumidity
  27. </if>
  28. <if test="column!=nulland'RainFall'==column">
  29. ,sh.RainFall
  30. </if>
  31. <if test="column!=nulland'WindSpeed'==column">
  32. ,sh.WindSpeed
  33. </if>
  34. <if test="column!=nulland'jiwen1'==column">
  35. ,sh.jiwen1
  36. </if>
  37. <iftest="column!=nulland'jiwen2'==column">
  38. ,sh.jiwen2
  39. </if>
  40. <iftest="column!=nulland'jiwen3'==column">
  41. ,sh.jiwen3
  42. </if>
  43. <if test="column!=nulland'jiwen4'==column">
  44. ,sh.jiwen4
  45. </if>
  46. from
  47. <if test="tablename!=nulland'sensorhistorydata'==tablename">
  48. sensorhistorydataassh
  49. </if>
  50. <if test="tablename!=nulland'sensorhistorydata_month'==tablename">
  51. sensorhistorydata_monthassh
  52. </if>
  53. <if test="tablename!=nulland'sensorhistorydata_xun'==tablename">
  54. sensorhistorydata_xunassh
  55. </if>
  56. <if test="tablename!=nulland'sensorhistorydata_day'==tablename">
  57. sensorhistorydata_dayassh
  58. </if>
  59. <if test="tablename!=nulland'sensorhistorydata_hour'==tablename">
  60. sensorhistorydata_hour as sh
  61. </if>
  62. where sh.sensorid in
  63. <foreach item="item" index="index" collection="ids"
  64. open="(" separator="," close=")">
  65. #{item}
  66. </foreach>
  67. andsh.RecevieDatebetween#{startTime}and#{endTime}
  68. orderBYsh.RecevieDateASC
  69. </select>