SQL对查询结果多字段排序
通过之前提到的联合查询,基于已查到的信息中,如需要根据不同的字段对结果进行排序
可在ORDER BY子句中列出需要排序的字段,语法
select * from table1 left join table2 on table1.id compopr table2.id
order by table.id2 (desc), table.id2(desc)
order by的处理优先级为从左到右,子句中可对每个字段给定排序方法,默认为升序
另外,对于表内不在select查询语句中的字段也可以排序,只需给出字段名称。
SQL中查找相关字符串
在日常查询中,有时候需要判断某些字段中是否包含给定的字符或字符串,SQL中可以用%, 或charindex, patindex两个函数用来搜索字符串或文字列
%
用来搜索表中某个字段是否包含给定字符串
语法:select * from table1 where id = '%test%'
charindex
用来搜索一个字符或字符串在另一个字符串中的起始位置,不能使用通配符
语法:charindex(expression1, expression2[, start_location])
expression1为要在expression2中查找的字符或字符串, start_location可指定查找的起始位置
当字符串中没有查找到给定字符,则返回0
patindex
用来搜索一个字符或字符串在另一个字符串中的起始位置,其中可使用通配符
语法: patindex("%pattern%", expression)
pattern为要在expression中查找的字符或字符串
判断字段内是否为空值
在日常查询中,会需要过滤或找出表中某些字段为空值的记录,
通常所说的空值分为两种,空值 和 NULL , 空值是一个值,值就是‘’, NULL表示没有值,这个数据库记录中没有插入值
语法:对空值处理中 select * from table where table.id = ‘’
对NULL处理中 select * from table where table.id is (not ) NULL