sqlnull排序
❶ sql如何將空值和非空值排序
空列值,order by 語句是可以排陸畢序到早滾芹最後的,你說的是null值吧。這個只能這備手樣:
select *,case when NAME is null or LEN(NAME)=0 ' ' else NAME end as NAME2 from TABLE order by NAME2 desc
❷ 這句sql里的null是什麼意思
你好,向你講解一下SQL中null空值:
在
SQL
語句中,
NULL
值與字元列中的空格,
數字中的零,
字元列中的
NULL
ASCII
字元都不相同。
在sql中null是一種數據類型,null不能與任何列或者變數使用"="或者"!="去比較,判斷某列或者變數為null是只能用
is
(not)
null
去判斷這樣他的返回值才是true或者false。
一、關於null的運用
1、NULL值與索引
如果一個列中有NULL值,那麼不可以在這個列上建唯一索引,可以建立非唯一索引;但是如果一個欄位有很多行有NULL值,那麼在這個欄位上建索引效果不佳。所以建議不在在一個頻繁出現NULL值的欄位上建索引。
2、NULL與排序
NULL參與排序時總是作為最小值存在,即ORDER
BY
COL
ASC時COL為NULL的行在最前面,反之在最後面。
二、IsNull的用法:使用指定的替換值替換
NULL。
語法
ISNULL
(
check_expression
,
replacement_value
)
參數
check_expression
將被檢查是否為
NULL的表達式。check_expression
可以是任何類型的。
replacement_value
在
check_expression
為
NULL時將返回的表達式。replacement_value
必須與
check_expresssion
具有相同的類型。
返回類型
返回與
check_expression
相同的類型。
如果文字
NULL
作為
check_expression
提供,則返回
replacement_value
的數據類型。
如果文字
NULL
作為
check_expression
提供並且未提供
replacement_value,則返回
int。
注釋
如果
check_expression
不為
NULL,則返回它的值;否則,在將
replacement_value
隱式轉換為
check_expression
的類型(如果這兩個類型不同)後,則返回前者。
如果
replacement_value
比
check_expression
長,則可以截斷
replacement_value。
注意:
請勿使用
ISNULL
查找
NULL
值。
而應使用
IS
NULL。
參考資料:
http://www.studyofnet.com/news/111.html
希望以上的回答對你有幫助!
❸ NULL參與排序時,MYSQL對NULL如何處理
1、以日期進行排序
select Rownum "ID" , 日期 , 金額, 商品 From (select 日期,金額,商品 from 表 order by 日期)
2、在排序後要求資料庫中內容發生變化,如果不是考試的話是沒人故意這么玩的。
任何對於數據的ID欄位進行手工變動都是愚蠢而白痴的行為。
讓然如果是老師故意考你們的話,可以用下面這個簡單方法。
①建立臨時表,使id欄位為自增欄位
create table tableName
(
id INT(20) not null AUTO_INCREMENT, --自增屬性
日期 char(20) not null,
金額 char(5) not null,
商品 char(2) not null
);
②將排好的數據插入新建的臨時表
Insert into tableName(日期,金額,商品) select 日期,金額,商品 from 原始表 order by 日期
③將原表改成其差備他名,並將第二步建的中間表高型改名為原表名
alter table 表1 rename to 表2
我手頭沒有mysql只能按印象寫出代碼,你拿去試戚慶猜一下吧。
我印象中mysql對pl的支持不好,所以只給出了用sql語句的方案,你參考下吧。
❹ SQL的nulls last(排序,空值排最後)用linq 怎麼實現
list.AddRange(Tables.Where(q=>模困氏q.ID!=null).OrderByDesending(q=>旦散q.ID));
list.AddRange(Tables.Where(q=>尺賀q.ID==null));
list.Skip().Take();
❺ SQL Server中排序時的Null值的問題求助!
select * from 表 order by case when 修改和拿日期 is null then 發表日期猜棚畝else 修改日穗森期 end