我有两个select语句的查询。我需要第二个select语句来返回基于第一个语句的结果。但是,第二个select语句返回的结果只是第一个选定语句的最后一个结果,重复。
这是我的问题:
Declare
@Low numeric (13,0) = 50000,
@High numeric (13,0) = 60000,
@State varchar(2),
@Place varchar(5),
@Gid2 varchar(7);
SELECT
@State = State, @Place = Place
FROM
[SUB-EST2014_ALL]
WHERE
(NOT(SUMLEV = '50')) AND (NOT(COUNTY = 0)) AND (NOT(PLACE = '99990')) AND (ESTIMATESBASE2010 > @Low) AND (ESTIMATESBASE2010 < @High)
Set
@Gid2 = CONCAT((REPLICATE('0',2-LEN(@State)) + @State),(REPLICATE('0',5-LEN(@Place)) + @Place))
SELECT
@Gid2 AS Gid2
From
[SUB-EST2014_ALL]
WHERE
(NOT(SUMLEV = '50')) AND (NOT(COUNTY = 0)) AND (NOT(PLACE = '99990')) AND (ESTIMATESBASE2010 > @Low) AND (ESTIMATESBASE2010 < @High)
如果单独运行第一个select语句,则会有270个结果。我想要完成的是从第二个查询获得270个独特的结果,但我得到的是第一个查询中最后一条记录的结果,重复270次。
有人可以帮我弄清楚我做错了吗?
答案 0 :(得分:0)
public class SchoolAdapter extends RealmBaseAdapter<School> implements ListAdapter {
private static class ViewHolder {
TextView school;
}
public SchoolAdapter(Context context, int resId, RealmResults<School> realmResults, boolean automaticUpdate) {
super(context, realmResults, automaticUpdate);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
viewHolder = new ViewHolder();
viewHolder.school = (TextView) convertView.findViewById(android.R.id.text1);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
School item = realmResults.get(position);
viewHolder.school.setText(item.getSchoolName());
return convertView;
}
public RealmResults<School> getRealmResults() {
return realmResults;
}
}
public class School extends RealmObject {
@Required
private String SchoolID;
private String SchoolName;
private RealmList<Student> Students;
//...getters/setters
}
public class Student extends RealmObject {
@Required
private String StudentID;
private String StudentName;
//...getters/setters
}
只会为查询返回的任何记录显示@ Gid2的值。尝试选择*或从该表中选择任何列
答案 1 :(得分:0)
我认为这就是你要做的事情
Declare
@Low numeric (13,0) = 50000,
@High numeric (13,0) = 60000,
@Gid2 varchar(7);
SELECT
CONCAT((REPLICATE('0',2-LEN(State)) + State),(REPLICATE('0',5-LEN(Place)) + Place)) Gid2
FROM
[SUB-EST2014_ALL]
WHERE
(NOT(SUMLEV = '50')) AND (NOT(COUNTY = 0)) AND (NOT(PLACE = '99990')) AND (ESTIMATESBASE2010 > @Low) AND (ESTIMATESBASE2010 < @High)