Ⅰ sql語句查詢IP段
--先構建一個轉換ip地址格式的函數 以『.』為間隔按4段拆分 每段前端補0 然後截取3位
--可將『1.1.166.0』轉換為『001001166000』
create function convertIP (@strIP varchar(20))
returns varchar(20)
as
begin
declare @str1 varchar(6),@str2 varchar(6),@str3 varchar(6),@str4 varchar(6),
@i int,@j int,@k int,@m int
set @i=1
set @j=1
set @k=1
set @m=1
while (@i<=len(@strIP))
begin
if (substring(@strIP,@i,1)='.')
begin
if @k=1 set @str1=substring(@strIP,@m,@j-1)
if @k=2 set @str2=substring(@strIP,@m,@j-1)
if @k=3 set @str3=substring(@strIP,@m,@j-1)
set @j=1
set @m=@i+1
set @k=@k+1
end
else
set @j=@j+1
set @i=@i+1
end
set @str4=substring(@strIP,@m,@j-1)
set @str1='000'+@str1
set @str1=substring(@str1,len(@str1)-2,3)
set @str2='000'+@str2
set @str2=substring(@str2,len(@str2)-2,3)
set @str3='000'+@str3
set @str3=substring(@str3,len(@str3)-2,3)
set @str4='000'+@str4
set @str4=substring(@str4,len(@str4)-2,3)
return @str1+@str2+@str3+@str4
end
--查詢ip地址為標准格式 例如'201.125.12.203'
select address from IP where dbo.convertIP(IPstart)<=dbo.convert('201.125.12.203') and dbo.convertIP(IPend)>=dbo.convertIP('201.125.12.203')
Ⅱ SQL語句查詢
用or把兩個條件拼接起來不就行了嘛,還是我沒理解對??select ntaxmny as 金額 from so_saleinvoice_b so where so.dbilldate>='2014-01-01' or so.daildate<='2013-01-01'
Ⅲ SqlIn.mdb 這種文件怎麼打開查看啊
是一種資料庫文件,用Microsoft Office Access就可以打開。
Ⅳ sql server 怎麼查詢前n條數據
1. Oracle資料庫
SELECT * FROM TABLENAME WHERE ROWNUM <= N
2. Infomix資料庫
SELECT FIRST N * FROM TABLENAME
3. DB2資料庫
SELECT *
FROM (SELECT * ROW_NUMBER() OVER({ORDER BY COL1 DESC}) AS ROWNUM FROM TABLENAME)
WHERE ROWNUM <= N
或者
SELECT COLUMN FROM TABLENAME FETCH FIRST N ROWS ONLY
4. SQL Server資料庫
SELECT TOP N * FROM TABLENAME
5. Sybase資料庫
SET ROWCOUNT N
GO
SELECT * FROM TABLENAME
6. MySQL資料庫
SELECT * FROM TABLENAME LIMIT N
7. FoxPro資料庫
SELECT * TOP N FROM TABLENAME ORDER BY COLUMN
以下示例從表 [tableName] 中讀取符合查詢條件的前10條記錄的SQL語句
1.Access
select top (10) * from [tableName] where [query condition]
1.1 帶order by的查詢限制
Access中對select top的語句支持有限,如果要在查詢top語句的後面使用order by,則order by排序欄位必須是無重復值,如果有重復值的話,那麼這個TOP很可能會失效,會返回所有記錄。
解決辦法:在order by 最後面加入主鍵id,如:
select top 10 from [tableName] order by 排序欄位1,id
1.2 帶子查詢的示例
假如id是表[tableName]的主鍵,以下語句期望返回三條記錄,但結果返回4條記錄
select top 3 * from [tableName] where id in(是個子查詢,結果比如為1,2,3,4)
解決辦法
select top 3 * from [tableName] where id in(是個子查詢,結果比如為1,2,3,4) order by id
2 DB2
select column from [tableName] where [query condition] fetch first 10 rows only
3 MySQL
select * from [tableName] where [query condition] limit 10
4 SQL Server
4.1 讀取前10條
select top (10) * from [tableName] where [query condition]
4.2 讀取後10條
select top (10) * from [tableName] order by id desc
4.3 按照某個排序,第5到10這幾個記錄
select top 6 * from [tableName] where id not in(select top 4 id from [tableName])
5 Oracle
select * from [tableName] where rownum<=10
Ⅳ sql中in函數的用法
IN
操作符
IN
操作符允許我們在
WHERE
子句中規定多個值。
SQL
IN
語法
SELECT
column_name(s)
FROM
table_name
WHERE
column_name
IN
(value1,value2,...)
IN
操作符實例
現在,我們希望從上表中選取姓氏為
Adams
和
Carter
的人:
我們可以使用下面的
SELECT
語句:
SELECT
*
FROM
Persons
WHERE
LastName
IN
('Adams','Carter')
Ⅵ SQL語句查詢數表的前n個欄位的方法
可以用存儲過程+游標實現,直接調用存儲過程p1即可:p1 5
create proc p1
@count int
as
begin
declare @cols nvarchar(200)
declare @colname nvarchar(20)
set @cols=''
declare c1 cursor for
select name from syscolumns where id=object_id('t_comp') and colorder <=@count order by colorder
open c1
fetch next from c1 into @colname
while @@fetch_status=0
begin
if @cols=''
set @cols=@colname
else
set @cols=@cols+','+@colname
fetch next from c1 into @colname
end
exec('select '+ @cols +' from t_comp')
close c1
deallocate c1
end
Ⅶ sql 1:N表 查詢
select * from a left outer join b on a.關聯欄位=b.關聯欄位
Ⅷ Sql查詢語句詳解
找kfb_cash表裡n_lldh不帶有重復值的長度為11的第一個n_lldh值
Ⅸ SQL查詢怎麼返回前N列數據
我來回答吧,我測試了。符合要求。
select top 1 id,成績 from 你的表 order by id asc
union
select top 1 id, 成績 from (
select *, 第一個成績=(
select top 1 成績 from 你的表 order by id asc) from 你的表
) ttt where 成績 + 第一個成績 > 100 order by id asc
Ⅹ 一條sql語句查詢N張表
結構相同就可以使用union,
將所有需要查詢的表名放在一張單獨的表中,遍歷這張單獨的表,使用動態sql執行