遇到一个需要排序的需求,找了半天终于找到用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 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)