所以我在存储过程中有这个Openquery,在这里我需要返回结果,其中列中的值与本地表中的值相同
public class AlarmBroadcastReceiver extends BroadcastReceiver {
public AlarmBroadcastReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context, "Alarm !!!!!!!!!!",
Toast.LENGTH_LONG).show(); // For example
}
}
基本上,它不会接受子查询,因为它说它有太多值。...所以我的问题是。在列的值与本地表中的值匹配时,如何限制子查询的值?基本上是开放式查询中的A列=本地表中的B列
编辑。
这就是我要实现的目标。
<receiver android:name=".AlarmBroadcastReceiver"></receiver>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
答案 0 :(得分:1)
好的,您需要对方法进行两项更改。
首先,您正在将子查询连接到字符串。无论如何,您的子查询都必须返回单个值,而不是多行集。因此,您需要使用选择的方法来使查询返回逗号分隔的字符串。
Here's one that will work on any version of SQL Server after 2005.
换句话说,代替这个:
Column A
| A |
| B |
| C |
| D |
| E |
您的子查询需要返回一个包含以下内容的varchar列:
'A','B','C','D','E'
您需要进行的下一个更改是使用IN而不是=。
所以代替这个:
AND FET001.ET0101 = '''''
+ (Your Subquery) + ''''' ) '
您需要这个:
AND FET001.ET0101 IN ( '
+ (Your Subquery) + ') ) '