我們有下表,其中包含deviceId
和customerPrefix
列。根據列值有條件地加入表
tblDeviceInfo:
deviceId customerPrefix
1 ABC
2 XYZ
基於客戶前綴我們也有設備表,我只列舉如下2,但我們有太多的和上面tblDeviceInfo表可以包含很多不同的customerPrefixes,我知道這是一個不好的做法,但這是我們目前所擁有的,我們暫時必須與之合作。
tblDeviceABC
deviceId deviceName
1 NameABC1
2 NameABC2
tblDeviceXYZ
deviceid deviceName
1 NameXYZ1
2 NameXYZ2
當我查詢tblDeviceInfo(它可以包含相當多的行),我希望能夠得到如下:
deviceId, deviceName, customerPrefix
1 NameABC1 ABC
2 NameXYZ1 XYZ
目前我們得到的一切,從tblDeviceInfo表,開始循環(在C#應用程序中)並根據客戶前綴從相關表中獲取設備詳細信息, 我想知道是否有基於列值加入表的方法,動態sql
@sql = 'Select deviceId, customerPrefix From tblDeviceInfo i
INNER JOIN tblDevice' + d.customerPrefix + ' d ON d.deviceId = i.deviceId'
這是不是很正確,但無論如何實現動態sql或任何其他方式嗎?
謝謝