SQL变量多次返回相同的结果

时间:2015-12-15 21:22:49

标签: sql-server-2014

我有两个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次。

有人可以帮我弄清楚我做错了吗?

2 个答案:

答案 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)