遇到一个需要排序的需求,找了半天终于找到用case when方法解决,把含有46,66非Iphone排在前面显示。
--CASE WHEN
SELECT init_value code, init_value_desc text
FROM (SELECT t.*,
CASE
WHEN (init_value_desc LIKE '%46%' OR
init_value_desc LIKE '%66%' AND
init_value_desc NOT LIKE '%IPHONE%') THEN
0
ELSE
1
END iscontain
FROM td_sm_element_initvalue t
WHERE element_code = 403
ORDER BY iscontain, init_value_desc)
分享到:
相关推荐
总的来说,通过巧妙地利用`CASE`表达式进行多条件统计,不仅可以简化代码,提高可维护性,还能在一定程度上提升查询效率。在实际的数据库设计和查询优化过程中,我们应该尽可能地利用这类高级SQL特性,以应对复杂的...
CASE WHEN pinyin LIKE 'x%' THEN 0 ELSE 1 END, LEN(pinyin), name; ``` 这个查询首先筛选出包含字母"x"的名字,然后通过自定义函数转换拼音,最后根据拼音是否以"x"开头、拼音长度以及名字本身进行排序。 ...
首先,我们来看一个基本的方法,即使用`CASE`语句进行排序。例如,如果我们有一个`sp_product`表,并且想要让产品ID为11042723的产品排在前面,可以写如下SQL: ```sql SELECT sp.productid, sp.productname, ss....
例如,`SELECT CASE WHEN column > 10 THEN '大于10' ELSE '小于等于10' END FROM table`。 9. **索引优化**:理解如何创建和使用索引可以极大地提高查询性能。索引应在经常用于搜索或排序的列上创建,但过多的索引...
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'YYYY') AS telyear, SUM(CASE WHEN TO_CHAR(a.telfeedate, 'MM') = '01' THEN a.factration END) AS JAN, ... ``` 通过使用`CASE`语句结合`SUM`函数,...