SQL 问题 如何这样排序 先一个字段,后在另外一个字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 问题 如何这样排序 先一个字段,后在另外一个字段相关的知识,希望对你有一定的参考价值。

表名Test字段
ID---Number---AType---AddDate
1----A1------YES-----2010-8-17
2----A2------YES-----2010-8-17
3----A1------NO-----2010-8-17
4----A1------NO-----2010-8-17
5----A2------NO-----2010-8-17
先按A1的输出,然后YES优先,然后是NO
结果是ID:1,3,4,2,5
YES只有一个
如何用SQL语句写
A1不是固定值,也可能是B1,C1,XXXX1

第一次是按Number的值 然后 然后全部Number一样的,后在Yes优先读取,在NO

输出全部的,不是Number='A1' 之类的,先按Number的值,在按Yes的

很简单,

select * from test order by number,atype desc

解释:
order by number,atype desc
此短语的作用是:
首先按number的值由小到大列记录,当此字段的值相同时,再按第二个字段atype 由大到小排记录 ,desc表示降序。默认是升序排列。
参考技术A select Number, AType, ID from Test
order by Number, Atype DESC, ID
说明:order by可以指定每个字段的排序规则,比如你这个要求就是Number增序(默认都是增序,故无需使用关键字)、ATyle降序(DESC的含义)、ID也是增序。本回答被提问者采纳
参考技术B select * from test where Number like '%1' order by Number,AType desc
union all
select * from test where Number not like '%1' order by Number,AType desc
参考技术C 二楼的正确

sql中 如何判断一个字符串是不是包含另外一个字符串

现在有2个表
表A
字段 AID name
1 啊哦额就好
2 日体育查询
3 新成程序我

表B
字段 BID name
001 查体
002 好哦
003 程序新
004 新程序

现在需要获得A.name字段包含B.name的AID与BID
最终结果图:
AID BID
1 002
2 001
3 003
3 004

请问这样需要怎么实现?

思路是,读取B.name字符串后进行字符串的的分割 name.,然后最后执行模糊查询A表,可以这样
WHERE (A.nameLIKE '%查%') AND (A.nameLIKE '%体%')
只能说完全用sql语句实现,有点难吧!
string name = "查体";
char[] NameChar = name.ToArray();
string SqlStr = "select * from A ";
for (int i = 0; i < NameChar.Count(); i++)

if (i == 0)

SqlStr += "where A.name LIKE'%" + NameChar[0] + "%'";

else

SqlStr += " and A.name LIKE'%" + NameChar[i] + "%'";



可以告诉你,没有关联查一个表还行,两个表都来不太可能。 而且你对关联查询理解有误!多看下概念。
参考技术A 你都毫无关联,怎么可能出现你的结果呢??
增加一个关联啦

以上是关于SQL 问题 如何这样排序 先一个字段,后在另外一个字段的主要内容,如果未能解决你的问题,请参考以下文章

用SQL查询分析器查询时怎么把一个字段用“”分割成多个?

SQL union all 排序问题

如何禁止DataGridView点击列标题排序

sql - 如何使用其他字段作为排序顺序进行排序?

如何使用 Oracle SQL 查询先按数字排序?

SQL update 的更新值来源于另外一个表,如何实现?