我有一个包含2列的表格,其中包含文字或1
我想在表上执行简单的SELECT * FROM
查询,并按2列
有些行会将一列留空而其他行不会有任何列空白但我想显示包含一行或两列的行,这些行包含结果底部的文本
示例数据:
sequence = 1
col1 = 'hello'
col2 = 'hello'
sequence = 2
col1 = ''
col2 = ''
sequence = 3
col1 = 'hello'
col2 = ''
因此上述数据应按顺序显示(按顺序):
2
3
1
答案 0 :(得分:4)
您可以明确计算空白数量并将其用于订购:
dt1.merge(dt2,left_on='id', right_on='registry_key_id', how='left')['id'].value_counts()
这会计算值的数量。
注意:如果值真的是order by ((col1 = '') + (col2 = '')) desc
而不是空字符串,那么:
NULL
这两个都使用MySQL功能,即布尔表达式在数字上下文中被视为整数,其中1表示true,0表示false。
答案 1 :(得分:1)
您需要条件订购:
SELECT * FROM YourTable t
ORDER BY CASE WHEN t.col1 = '' THEN 1 ELSE 0 END +
CASE WHEN t.col2 = '' THEN 1 ELSE 0 END DESC,
t.col1,t.col2
答案 2 :(得分:0)
SELECT *
FROM table
ORDER BY
col1 ASC
, col2 ASC
你甚至可以限制它
SELECT *
FROM table
ORDER BY
col1 ASC LIMIT 3
, col2 ASC LIMIT 3
答案 3 :(得分:-1)
您可以Title:
。