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

sql怎麼輸出列名

發布時間: 2023-07-30 16:13:51

1. sql中顯示所有讀者的姓名和年齡,並用中文顯示列名

1、創建測試表,

create table test_reader(name varchar2(200), age int);

2. SQL如何列出表名

select * from 學生表。。。
所有列

select [id], [name] from [sysobjects] where [type] = 'u' order by [name] 所有表

3. 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
這個方法可以獲取當前庫存中所有表的所有列。希望對你有用。

4. 什麼SQL語句可以列出表的欄位名

SQL SERVER中的語句是

select name
from syscolumns
where id =object_id('表名')

把「表名」替換成實際的表名。

5. SQL 如何根據指定值獲取列名

insert into 表(T1)
select
case when 欄位1 = 1 then '欄位1,' else '' end +
case when 欄位2 = 1 then '欄位2,' else '' end +
case when 欄位3 = 1 then '欄位3,' else '' end +
...
case when 欄位20 = 1 then '欄位20,' else '' end
as T1
from 表

6. PL/SQL中 輸出列名和對應值。新手請教。

--很奇怪是下面from為什麼不能用參數tablename?會報錯
select colname into colValue from table1 where hashcode='';
這個from後面不能使用tablename參數很正常,因為你傳進來的tablename是一個字元串,而不是一張表,所以是無法將tablename直接這么放到from 後邊的 ,還有上面語句,colname本身是你從數據字典表中選到的變數名,也是一個字元型,相當於select '1' into colvalue from table1,這樣的colvalue結果一定是'1',而不是colname這個列對應的值。因為colname已經成了字元型了。

應該使用execute immediate來執行。
最終語法修改如下:
declare
tablename varchar2(100):='TABLE1';
colname varchar2(100);
colValue varchar2(500);
selectsql varchar2(200);
--返回表中所有列名
cursor cursor_colname is select column_name as cname from user_tab_columns where table_name=tablename;
begin
open cursor_colname;
LOOP
fetch cursor_colname into colname;

--很奇怪是下面from為什麼不能用參數tablename?會報錯
selectsql := ' select ' || colname || ' from ' || tablename || ' where hashcode = ''''';
execute immediate selectsql into colValue;
exit when cursor_colname%notfound;
dbms_output.put_line(colname||'='||colValue);
end loop;
close cursor_colname;
end;

7. 在sql資料庫里的,查詢分析器里,導出查詢結果,但沒有列名稱,怎麼才能把列名稱也導出

select * from Table1

列名另外再寫一段取,導出後復制過去就行

declare @title varchar(8000)
set @title=''

select @title=@title+name+',' from syscolumns where id=(select id from sysobjects where xtype='u' and name='Table1') order by colorder

print @title

8. sql語句能夠列出一個表所有列的列名么 sqlite能夠列出一個表所有列的列名么

表名和列明一般都存儲在系統表裡面,只要你找到那個系統表.SQL Server 表名存儲在sysobjects中,而列名存儲在syscolumns中,從這兩張表中能查到某個表的列名