sql語句去重
sql語句通過DISTINCT關鍵字去重, 用于返回唯一不同的值。DISTINCT關鍵字需要搭配SELECT 語句使用,語法為SELECT DISTINCT 列名稱 FROM 表名稱。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的項就必須出現在選擇列表中,否則會出現錯誤。
擴展資料:
distinct這個關鍵字用來過濾掉多余的重復記錄只保留一條,但往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環查詢來解決,而這樣對于一個數據量非常大的站來說,無疑是會直接影響到效率的。
distinct必須放在開頭,distinct語句中select顯示的字段只能是distinct指定的字段,其他字段是不可能出現的。
sql查詢去掉重復記錄
1、利用SQL Server 2012資源管理器創建數據庫表t_call_info,包含有三個字段id、cno和cname。
2、創建完畢后,刷新數據庫book,這時會在表文件夾下生成數據庫表t_call_info。 3、向數據庫表t_call_info插入10條數據。
4、查詢數據庫表數據,這時會看到10條數據記錄。 5、在數據庫鼠標右鍵創建新查詢,如下圖所示。
6、在生成查詢窗口,編輯動態查詢SQL語句,聲明整型tid、字符串型sql,然后賦值,最后調用參數執行SQL語句。 。
一句SQL查詢 要求去除重復語句
declare @tid nvarchar(50),@username nvarchar(50),@oldusername nvarchar(50),@str nvarchar(150),@sql nvarchar(max)
set @str=''
declare g_cursor cursor for
SELECT *,*me
FROM `pw_threads` AS t, pw_members AS u
WHERE *id = *
AND NOT isnull( * )
ORDER BY postdate DESC
open g_cursor
fetch next from g_cursor into @tid,@username
while @@FETCH_STATUS=0
begin
if @oldusername <> @username
set @str+=''+@tid+''+','
fetch next from g_cursor into @tid,@username
end
close g_cursor
deallocate g_cursor
if @str <> ''
begin
set @str=SUBSTRING(@str,1,LEN(@str)-1)
set @sql='select top 3 * from `pw_threads` AS t where tid in (@tid)'
exec @sql
end