当前位置:首页 » 编程语言 » sql列名参数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql列名参数

发布时间: 2022-05-29 18:11:59

sql在 SQL 的查询中, Where 字段名='参数' 中的参数是筛选条件,

php是mysql_query("show
table_name",$con);
table_name是表名,$con是数据库链接对象。

❷ SQL查询时为什么会 把字段名当参数了啊

Microsoft JET Database Engine 错误分析

Microsoft JET Database Engine 错误 '80040e10'
至少一个参数没有被指定值。 分析原因,很简单的原因。数据库中的字段与你程序中的字段不一样。
比如
select * fromtest where aaa
而在数据库中不存在这个字段,就会这种问题
============================================
你检查下 order 后的字段名是不是正确

❸ sql数据库列名是关键字时怎么办

用exec()方法实现,比如@表名、@字段名是存储过程的两个参数,则可以这样查询数据:exec("select
"+@列名+"
from
"+@表名)

❹ sql存储过程中能否用自定义参数代替列名进行判断

不能,只能把整条SQL语句变成字符串,再利用命令执行该字符串,在oracle中执行命令是 execute immediate 字符串

❺ SQL里的游标是什么如何将表名,列名,还有查询条件作为参数传进存储过程,要有代码和说明

create proc spname
@pctable varchar(20),--表名
@pccol varchar(20)--列名
as
begin
exec('select ' + @pccol + ' from ' + @pctable) --演示根据参数查询
/*游标演示
declare @ctemp int
declare cc cursor for select id from table --定义table的id列作为游标
open cc --打开游标
fetch next from cc into @ctemp --游标赋给变量
while @@fetch_status = 0 --如果游标存在
begin
print @ctemp
fetch next from cc into @ctemp --跳到下个游标
end

close cc --关闭游标
deallocate cc --释放游标
*/
end

----------------------------
declare cc cursor for select id from table --定义table的id列作为游标
open cc --打开游标
fetch next from cc into @ctemp --游标赋给变量

对于上面三句话的举例:
假设有表table,内容如下:
id name
1 张三
2 李四
3 王五
4 赵六

那么:declare cc cursor for select id from table --把table的第一列id定义为游标(cc)
定义了以后,游标存在了,但是为空。所以把第一行的id赋给cc。
fetch next from cc into @ctemp 相当于 @ctemp = next from cc = 1

然后begin和end中间的fetch next from cc into @ctemp
是用于,我已经执行完对第一个游标的操作了,接下来要跳转到下一个游标.
fetch next from cc into @ctemp 相当于 @ctemp = next from cc = 2

你做过for循环吗?做过就很容易理解了.
int i; //这一句相当于declare cc cursor
for (i = 0; i < table行数; i++) //i++ 相当于begin和end中的fetch next from cc into @ctemp
{}

❻ sql函数如何把字段当作参数

select * from b where b.no in (select a.no from a where a.id=b.id)

❼ sql通过列名取值

先拼个sql语句,把列用变量表示 ,然后使用 sp_executesql 执行这个sql语句
如:
DECLARE @clums nVARCHAR(50)
SET @clums='Age'
DECLARE @sql nVARCHAR(1000)
SET @sql=N'select '+@clums+' from TableName '
EXEC sp_executesql @sql

@clums 是你通过存储过程传过来的参数,它的值可以是Age,Sex,Class任何一个,也是可以多个,如
@clums='Age,Sex'

❽ sql数据库参数是表名或列名怎么办

或者用sp_executesql可能更好些

❾ 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
这个方法可以获取当前库存中所有表的所有列。希望对你有用。

❿ 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;