sql獲取列名
『壹』 sql 查詢 一個表中某幾列數據
sql查詢一個表中某幾列數據語法:
1、SELECT 列名稱1、列名稱2.....列名稱n FROM 表名稱 WHERE 列 運算符 值;
2、SELECT * from 表名稱 where 列 運算符 值(列 運算符 值,這個可以是多個,中間用and隔開)。
解析:使用sql查詢時,作為查詢的篩選限制條件,只需要對有限制要求的欄位使用where進行限制即可,無需對非限制要求的欄位進行特別限制。
所以你的語句可以修改為"select * from test1 where id=『2』;"就可以了。其中,你原語句中的name=全部和age=全部,屬於多餘的,如果不對name和age欄位做任何限制的話,sql本身就是會查詢全部name和age,而無需你另外加設條件。
再比如你這樣寫:「select * from test1;」在不加任何where條件的情況下,這個sql查詢本身就是查詢全部數據。而當加入id='2'之後,就限制了只能返回id值是2的某一條或者多條數據。
通過幾個例子來加深一下對上表各查詢條件使用的理解:
1、查詢計算機科學系全體學生的名單;
SELECT Sname FROM StudentWHERE Sdept='CS';
2、查詢所有年齡在20歲以下的學生姓名及其年齡;
SELECT Sname,Sage FROM StudentWHERE Sage<20;
3、查詢考試成績不合格的學生的學號;
SELECT DISTINCT Sno FROM SCWHERE Grade<60;
4、查詢年齡在20~23歲之間的學生的姓名、系別和年齡;
SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23;
5、查詢年齡在20~23歲之間的學生的姓名、系別和年齡;
SELECT Sname,Sdept,Sage FROM StudentWHERE Sage NOT BETWEEN 20 AND 23;
6、查詢計算機科學系(CS)、數學系(MA)和信息系(IS)學生的姓名、系別和年齡。
SELECT Sname,Ssex FROM Student WHERE Sdept IN('CS','MA','IS')。
『貳』 什麼SQL語句可以列出表的欄位名
SQL SERVER中的語句是
select name
from syscolumns
where id =object_id('表名')
把「表名」替換成實際的表名。
『叄』 SQL 高手們 :如何取select..語句select 出來的列名... 復雜的select 語句
select 欄位 from (select 欄位 from 表) 別名
『肆』 Sql 語句。獲取指定表的列名
--isnull函數:需要個參數,如果第一個參數為空,則賦值第二個參數。
SELECT
--空格代表as關鍵字
( CASE WHEN a.colorder = 1 THEN d.name
ELSE ''
END ) 表名 ,
a.colorder 欄位序號 ,
a.name 欄位名 ,
( CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√'
ELSE ''
END ) 標識 ,
( CASE WHEN ( SELECT COUNT(*)
FROM sysobjects
WHERE ( name IN (
SELECT name
FROM sysindexes
WHERE ( id = a.id )
AND ( indid IN (
SELECT indid
FROM sysindexkeys
WHERE ( id = a.id )
AND ( colid IN (
SELECT
colid
FROM
syscolumns
WHERE
( id = a.id )
AND ( name = a.name ) ) ) ) ) ) )
AND ( xtype = 'PK' )
) > 0 THEN 'true'
ELSE 'false'
END ) 主鍵 ,
b.name 類型 ,
a.length 佔用位元組數 ,
COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 長度 ,
ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小數位數 ,
( CASE WHEN a.isnullable = 1 THEN 'true'
ELSE 'false'
END ) 允許空 ,
ISNULL(e.text, '') 默認值 ,
ISNULL(g.[value], '') AS 欄位說明
--a代表列集合表:為每個表和視圖中的每列返回一行,並為資料庫中的存儲過程的每個參數返回一行
--b代表列類型表:為資料庫中定義的每種系統提供的數據類型和每種用戶定義的數據類型返回一行。
FROM syscolumns a
LEFT JOIN systypes b ON a.xtype = b.xusertype
--d代表對象表:在資料庫中創建的每個對象(例如約束、默認值、日誌、規則以及存儲過程)都對應一行
INNER JOIN sysobjects d ON a.id = d.id
AND d.xtype = 'U'
AND d.name <> 'dtproperties'
--e代表e.text是默認值:包含資料庫中每個視圖、規則、默認值、觸發器、CHECK 約束、DEFAULT 約束和存儲過程的項
LEFT JOIN syscomments e ON a.cdefault = e.id
--g代表g.[value]是欄位說明:針對當前資料庫中的每個擴展屬性返回一行。
LEFT JOIN sys.extended_properties g ON a.id = g.major_id
AND a.colid = g.major_id
ORDER BY a.id ,
a.colorder
這個方法可以獲取當前庫存中所有表的所有列。希望對你有用。