如何用SQL语言检索表中的字段名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用SQL语言检索表中的字段名相关的知识,希望对你有一定的参考价值。

本人想在SQL中检索出某一个表中的字段名,请问语句应该怎么写?

SQL SERVER

查看所有表名:
select name from sysobjects where type='U'

查询表的所有字段名:
Select name from syscolumns Where ID=OBJECT_ID('表名')

select * from information_schema.tables
select * from information_schema.views
select * from information_schema.columns

ACCESS

查看所有表名:
select name from MSysObjects where type=1 and flags=0

MSysObjects是系统对象,默认情况是隐藏的。通过工具、选项、视图、显示、系统对象可以使之显示出来。

参考资料:http://hi.baidu.com/yongfa365/blog/item/b35dc8ead20584d3d439c9d1.html

参考技术A <% dim msg,t
t=now()
msg=request("msg")
set rs=con.execute("select msg from news where msg='"&msg&"'")
if not rs.eof then
%>
<script Language="VbScript">
MsgBox "请别重复发言"
location.href="admin_gonggaofabu.asp"
</script>
<% end if
%>
<% if msg="" then
%>
<script Language="VbScript">
MsgBox "不能为空"
location.href="admin_gonggaofabu.asp"
</script>
<% end if %>
<% if rs.eof then
con.execute("insert news (msg,t) values( '"&msg&"','"&t&"')")
end if
%>

如何用sql 语句查找一个表里的两个字段重复的记录

表名为gl_accass 现在需要查找出citem_id和me字段在这个表里的重复值并列出来,前提是ccode等于1403 iperiod等于2。比方说在gl_accass表中ccode字段为1403, iperiod字段为2 citem_id有两行为001 对应的me字段的两行也是重复值,就查询出来。。不大懂SQL,表达的也不是多清除,QQ314363217 如能解决另加100分。万分感谢了。

select citem_id, me from gl_accass
where ccode=1403 and iperiod = 2
group by citem_id, me
having count(*) > 1
这个是仅仅把ccode和me列出来,不知道你是否需要把这条记录也列出来
如果要把 i_id连同这行记录列出的,用下面这个SQL
select * from gl_accass ,
( select citem_id, me from gl_accass
where ccode=1403 and iperiod = 2
group by citem_id, me
having count(*) > 1) t2
where gl_accass.citem_id = t2.citem_id and gl_accass.me = t2.me

如果你的ccode字段和me字段是字符型的,请把 =1403 和 =2 写成 ='1403' 和 ='2'追问

上面的sql测试正确,下面的执行后iperiod这个字段把为1的也显示了。我需要的就是在第一个语句的基础上再显示出来对应的 i_id就可以了。麻烦你再给写个吧,分一定给你。多谢了

追答

哦,那就把还有两个条件也加上

select * from gl_accass ,
( select citem_id, me from gl_accass
where ccode=1403 and iperiod = 2
group by citem_id, me
having count(*) > 1) t2
where gl_accass.citem_id = t2.citem_id and gl_accass.me = t2.me
and ccode=1403 and iperiod = 2

参考技术A 若是只把相同记录查出来,sql语句如下(ccode、iperiod当成了int进行处理):
select citem_id,me
from gl_accass
where ccode=1403 and iperiod=2
order by citem_id,me
若是要查出相同记录数:
select citem_id,count(citem_id) numberofcitem_id,me,count(me) numberof(me)
from gl_accass
where ccode=1403 and iperiod=2
group by citem_id,me
order by citem_id,me
参考技术B 你的表述也不是太清楚,最好举个例子

select a.* from table_name a ,table_name b where a.column_name = b.column_name;追问

已经补充问题,望解答

以上是关于如何用SQL语言检索表中的字段名的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句查询两张表中的相同字段数据

如题:如何用一条SQL语句按输入的参数进行判断执行查询数据

如何用他们的名字保存和检索相册中的照片

SQLSERVER如何在数据库里根据某个字段,查出该表名字

如何用标准SQL语句给一张表中添加多个字段

如何用SQL语句取出数据库中的特定一条数据?