sql查詢欄位
Ⅰ sql 如何查詢包含某一欄位的值
這種情況需要寫存儲過程,進行全庫搜索。代碼如下:
declare@cloumnsvarchar(40)
declare@tablenamevarchar(40)
declare@strvarchar(40)
declare@countsint
declare@sqlnvarchar(2000)
declareMyCursorCursorFor
Selecta.nameasColumns,b.,sysobjectsb,systypesc
wherea.id=b.id
andb.type='U'
anda.xtype=c.xtype
andc.namelike'%varchar%'
set@str='張三'
OpenMyCursor
FetchnextFromMyCursorInto@cloumns,@tablename
While(@@Fetch_Status=0)
Begin
set@sql='select@tmp_counts=count(*)from'+@tablename+'where'+@cloumns+'='''+@str+''''
executesp_executesql@sql,N'@tmp_countsintout',@countsout
if@counts>0
begin
print'表名為:'+@tablename+',欄位名為'+@cloumns
end
FetchnextFromMyCursorInto@cloumns,@tablename
End
CloseMyCursor
DeallocateMyCursor
注意:其中「張三」為要查找的字元串,可以替換成其他的,如果查詢的字元串超長,需要在定義變數時適當擴大長度。
可以替換成其他的,如果查詢的字元串超長,需要在定義變數時適當擴大長度。
Ⅱ 通過sql欄位查類型
要從系統表中查詢了。
select a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('表名') and a.xtype=b.xtype
把「表名」替換成你要查看欄位類型的表名,比如你要查看sysobjects表的各欄位類型那麼就是
select a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('sysobjects') and a.xtype=b.xtype
另外可以通過存儲過程
exec sp_help 表名
來查看錶各欄位的信息,其中就包括欄位類型。
Ⅲ SQL欄位查詢
select substring(欄位名,charindex('(',欄位名)+1, charindex(')',欄位名)-charindex('(',欄位名)-1),
count(*)
from 表
group by substring(欄位名,charindex('(',欄位名)+1, charindex(')',欄位名)-charindex('(',欄位名)-1)
from 表
如內容adfa(haha)fafa,出來為haha
substring 為字元截取函數
charindex 為查找字元位置函數
都是sql servce中的,其他資料庫可能不一樣
思路是:
先找出欄位中(和)位置,再截取中間的字元,
查詢的時候根據字元分組,這樣就是()中的內容,
count就是有幾個不同的內容
給你個簡單的子查詢
select a.content,count(content) from
(
select substring(欄位名,charindex('(',欄位名)+1, charindex(')',欄位名)-charindex('(',欄位名)-1) as content
from 表
) a group by a.content
Ⅳ sql查詢欄位類型
樓主是什麼資料庫,什麼版本;
MS SQL用
sysobjects/syscolumns/systypes三個連接就行了
以SQL2005也可用
select
a.Name as 表名,
b.Name as 列名,
c.Name as 類型,
b.max_length as 位元組數,
b.Precision as 整數位,
b.Scale as 小數位
from Sys.tables a
inner join Sys.columns b on a.object_id=b.object_id
inner join sys.Types c on c.User_Type_ID=b.User_Type_ID
Ⅳ SQL查詢一個表中的欄位……
select title from class where aid='10' or aid='23'
上述語句將輸出記錄格式如下:
title
大眾
捷達
Ⅵ sql查詢表中欄位
select * from --主查詢
(select namea=c.name from syscolumns c,sysobjects o where o.id=c.id and o.xtype='u' and o.name='tablea') a--A表中所有欄位
full join --使用全連接
(select nameb=c.name from syscolumns c,sysobjects o where o.id=c.id and o.xtype='u' and o.name='tableb') b--B表中所有欄位
on namea=nameb where namea is null or nameb is null--只保留不同的欄位
查詢結果是,兩表不同的欄位列出,兩表均有的欄位不列:
NAMEA,NAMEB
FIELD1 NULL
FIELD2 NULL
NULL FIELD3
NULL FIELD4
Ⅶ sql查詢表中某欄位的欄位類型
按理既然是日期型的欄位,那麼它的值也應該是日期型的,否則是存不進去的,既然有這樣的數據,那麼就建個函數吧,大概是這樣的.
CREATE or replace FUNCTION ISDATE
( pdate varchar2)
RETURN varchar2 IS
v_date date;
BEGIN
v_date := to_date(pdate,'yyyy/mm/dd');
return 'true';
exception
when others then
return 'false';
END;
然後在你的語句中用就可以了
select * from table where isdate(欄位) = 'false'
Ⅷ SQL查詢欄位名
獲取資料庫表的欄位清單 [這里是查看 test_table 表的欄位]
SELECT
a.column_id AS No,
a.name AS 列名,
isnull(g.[value],'-') AS 說明
FROM
sys.columns a left join sys.extended_properties g
on (a.object_id = g.major_id AND g.minor_id = a.column_id)
WHERE
object_id =
(SELECT object_id FROM sys.tables WHERE name = 'test_table')
No 列名 說明
1 Test_ID 主鍵(自增長)
2 Test_Key 種類
3 Test_Value 數值
4 Test_Type 內部類型
5 Test_BelongTo 從屬關系
6 Test_Grade 等級
7 Test_Remark 備注
8 Test_Visible 是否可見
Ⅸ 怎樣用SQL查詢一個表的所有欄位
可以用一句sql語句查詢解決,如要查test表中的所有欄位及類型
Selectb.nameasTableName,C.nameASTYPEfromsyscolumnsa,sysobjectsb,systypesc
wherea.id=b.id
andb.type='U'
anda.xtype=c.xtype
andb.name='TEST';
結果截圖:
Ⅹ sql如何查表中欄位的數據
select
*
from
表名
where
條件
(用於查找符合條件所用欄位名稱)
*也可用欄位名稱代替