當前位置:首頁 » 編程語言 » sql返回欄位名
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql返回欄位名

發布時間: 2023-05-22 07:41:20

A. sql怎麼導出欄位名

用SQL的導入導出功能,導出成EXCEL,在步驟中選擇用一條SQL語句這個選項然後輸入下邊的語句 SELECT SYSCOLUMNS.NAME
FROM SYSCOLUMNS
WHERE SYSCOLUMNS.ID=OBJECT_ID('你的表名') 這樣就可以把表的欄位名導出到EXCEL,就可以自由復制或者直接保存

B. 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 是否可見

C. 如何用sql語句返回指定欄位的數據類型

select ColumnName = c.name , ColumnType=T.name
from sys.columns as c
INNER JOIN sys.types T ON C.user_type_id=T.user_type_id
where c.name = '欄位名'

D. db2 資料庫上 我有個sql,比如 select * from test ,但是我不要返回結果集,我要返回所有的欄位名,

SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('T_USER')

你是查列的欄位名,又不是查數據明梁鄭,你join 後面的on()是沒東渣納西寫的,一般就union連接兩個查詢語句,查看多個表的字激頌段名

E. 求給力!!SQL獲取欄位名!!高手請賜教!

CREATE TABLE TestABC (
[ID] INT,
[姓名] VARCHAR(10),
[性別] CHAR(2),
[年級] CHAR(4),
[語文] INT,
[數學] INT,
[英語] INT,
[物理] INT,
[化學] INT
);

INSERT INTO TestABC
VALUES(1, '張三', '男', '高一', 80, 90, 90, 95, 90);

-- 這個SQL,是除了 'ID', '姓名', '性別', '年級' 這4列以外,其他都檢索。
DECLARE @sql VARCHAR(200);
BEGIN
SET @sql =
'SELECT ' + STUFF(
(SELECT
',' + col.name
FROM
sys.columns col
WHERE
col.object_id =
(SELECT object_id FROM sys.tables WHERE name = 'TestAbc')
AND col.name NOT IN ('ID', '姓名', '性別', '年級')
FOR XML PATH('')), 1 , 1, '') + ' FROM TestAbc';
EXECUTE (@sql);
END

-- 這個SQL,是排除前面4列,從第5列開始全部檢索。
DECLARE @sql VARCHAR(200);
BEGIN
SET @sql =
'SELECT ' + STUFF(
(SELECT
',' + col.name
FROM
sys.columns col
WHERE
col.object_id =
(SELECT object_id FROM sys.tables WHERE name = 'TestAbc')
AND col.column_id > 4
FOR XML PATH('')), 1 , 1, '') + ' FROM TestAbc';
EXECUTE (@sql);
END

2個SQL 的結果是一樣的:

語文 數學 英語 物理 化學
----------- ----------- ----------- ----------- -----------
80 90 90 95 90

(1 行受影響)

F. 怎樣用sql語言返回表的所有欄位名

通過系碼好統表查該表的所有遲橋鉛列名,
不需要顯示的就不要,
然後消培生成SQL查詢,
除了不想顯示的都能顯示出來.

G. SQL語句在 select * from tablename 的時候,返回的結果怎麼帶上欄位名,欄位名有一千多,不能一個一個寫

這句語句本來就帶欄位名滲攜的。你要單獨列欄位姿敏出叢冊伏來的話就select 欄位名1,欄位名2,。。。 from tablename

H. SQL語言基礎(4)

內連接

把兩張表相同的地方查詢出來

左連接

包括了內連接,同時還查詢左表特有的內容

右連接

包括了內連接,同時還查詢了右表獨有的內容

語法:select * from 表1 inner join 表2 on 表1.欄位 = 表2.欄位

內連接最重要的是,找出兩張表要關聯的欄位

顯式內連接

查詢a表和b表共有的數據

select * from a inner jion b on a.id = b.id;

查詢students和scores共有的數據

select * from stundets inner join scores on students.studnetNo = scores.studentNo;

語法:select * from 表1,表2 where 兩個表的連接條件

select * from students,scores where students.studentNo = scores.studnetNo;

內連接查詢顯示指定的欄位

students表與scores內連接,只顯示姓名,課程號,成績

select name,courseNo,score from studnets inner join scores students.studentNo = scores.studentNo;

表的別名在查詢中的使用(當使用表別名可以縮短SQL語句)

select name,coursenNo,score from students st inner join scores cson st.studentsNo = sc.studnetNo;

查詢成績表信息,同時顯示成績對應的課程名稱

select * from scores sc inner join course co on sc.courseNo = co.courseNo;

帶有where條件的內連接

    語神顫頃法select * from 表1 inner join 表2 on 表1.欄位 = 表2.欄位 where條件

查詢王昭君的信息,要求只顯示游陸姓名、課程號、成績

select name,coursenNo,score from students st inner join scores sc on st.studentNo = sc.studentNo where name = '王昭君'

帶有and邏輯運算符的內連接查詢

查詢姓名為王昭君,並且成績小於90的信洞陵息,要求只顯示姓名、成績

select name,score from students st inner join scores sc on st.studentNo = sc.studentNo where st.name = '王昭君' and sc.score < 90;

查詢學生信息和成績以及成績對應的課程名稱(三張表關聯)

select * from students inner join scores on students.studnetNo = scores.studentNo 

inner join courses on scores.courseNo = courses.courseNo;

搭框架

    基本的select語句框架搭建起來,如果有多表,把相應的多表也聯合進來

看條件

    決定where後面具體的條件

顯示的欄位

    select後面到底要顯示什麼欄位

查詢所有學生的linux的課程成績,要求只顯示姓名、成績、課程名

第一步:搭框架

select * from students inner join scores on students.studentNo = scores.studentNo inner join courses on scores.courseNo = courses.courseNo;

第二步:看條件

select * from students inner join scores on students.studentNo = scores.studentNo inner join courses on scores.courseNo = courses.courseNo where coursename = 'linux';

第三步:返回欄位名

select name,score,coursename from students inner join scores on students.studentNo = scores.studentNo inner join courses on scores.courseNo = courses.courseNo where coursename = 'linux';

帶有order by 排序的內連接查詢

查詢成績最高的男生信息,要求顯示姓名、課程名、成績

select name,score,coursename from 

students inner join scores on students.studentNo = scores.studentNo 

inner join courses on scores.courseNo = courses.courseNo 

order by score desc limit 0,1;

語法:select * from 表1 left join 表2 表1.欄位=表2.欄位

查詢所有學生的信息以及成績,包括沒有成績的學生

select * from students inner left join scores on studnets,studentNo = scores.studentNo;

語法:select * from 表1 right join 表2 表1.欄位=表2.欄位

查詢所有的課程信息,包括沒有成績的課程

select * from student right join courses on scores.courseNo = courses.courseNo;

多表聯合查詢,同名欄位的處理方式(如果多表查詢出現重名欄位時,一定要在所查欄位前加上指定的表名)

如果一條select要用到多個表,表中有同名欄位,就需要 表名.欄位名 加以區分

select students.studentNo form students inner join scores on students.studentNo = scores.studentNo;

查詢一共有多少省(因為省的沒有上級,我們用NULL數據填充)

select count(*) from areas where is null;

查詢一共有多少市

select count(*) from areas where is not null;

自關聯是同一張表做連接查詢

自關聯下,一定找到同一張表可關聯的不同欄位

查詢廣東省所有城市 (當要用到自關聯的時候,需要給表起別名)

select count(*) from areas a1 inner join  areas a2 on a1.id = a2.pid where a1.name = '廣東';

子查詢是嵌套到主查詢裡面的

子查詢作為主查詢的數據源或者條件

子查詢是獨立可以單獨運行的查詢語句

主查詢不能獨立運行,依賴子查詢的結果

查詢大於平均年齡的學生記錄

    用子查詢實現(子查詢就是把一張表的結果作為另外一張表的條件)

select * from studnets where age > (select avg(age) from students); 

查詢30歲的學生的成績

1.查詢30歲學生的studentNo

select studentNo from students where age = 30;

select * from scores where studentNo in ('001','003','011');

用子查詢實現

select * from scores where studentNo in (select * from scores where age = 30);

用內連接實現

select * from student st inner join scores sc on st.studentNo = sc.studentNo where sex = '女' ;

用子查詢實現

用子查詢,查詢所有女生的信息和成績 (把表的查詢結果作為另外一個表然後在做內連接)

select * from (select * from students where sex ='女') stu inner join scores sc on stu.studentsNo = sc.studentsNo;

表級子查詢--子查詢返回結果為多行,多列

1.列出男職工的總數和女職工的總數

select sex,count(*) from employess group by sex;

2.列出非黨員職工的總數

select count(*) from employess where politicalstatus ! = '黨員';

3.列出所有職工工號,姓名以及所在部門的名稱

select empid,empname,deptname from departments d inner join employees e on d.deptid = e.deptid;

4.列出所有職工工號,姓名和對應工資

select e.empid ,empname,salary from employees e inner join salary on e.empid = s.empid;

5.列出領導崗的姓名以及所在部門名稱

select empname,deptname from departments d inner join employees e on d.deptid = e.deptid where leader is null;

6.列出職工人數大於4的部門號和總人數

select deptid,count(*) from employees group by deptid having count(*) > 4;

7.列出職工總人數大於4的部門號和部門名稱

select e.deptid ,deptname count(*) from departments d inner join employees e on d.deptid = e.deptid group by e.deptid having count(*) > 4;

8.列出開發部和測試部的職工號,姓名

select empid,empname from departments d inner join employees e on d.deptid = e.deptid where deptname in ('測試部','開發部');

select e.empid,e.empname from (select * from departments where deptname in ('測試部','開發部')) d inner join employees e on d.depid = e.depid;

9.列出市場部所有女職工的姓名和政治面貌

select empname,politicalsta from departments d inner join employees e on d.deptid = e.deptid where deptname ='市場部' and sex ='女';

10.顯示所有職工姓名和工資,包括沒有工資的職工姓名

select empname,salary from employess e left join salary s on e.empid = s.empid;

11.求不姓孫的所有職工工資

select empname,sum(salary) from employees e left join salary s on e.empid = s.empid where empname not like '孫%';

select empname,salary from (select * from employess where not like '孫%') e inner join salary s on e.empid = s.empid;

I. sql 查詢欄位名稱 已知id和欄位值,查詢欄位名稱

用系統表
select [name],[column_id] from sys.columns where [object_id]=object_id('老擾dbo..tablename')
其侍神旦中name是欄位名、column_id是第幾列、tablename是你的瞎液表的名字