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

sql新增函数

发布时间: 2022-08-29 00:52:08

① 写一个sql自定义函数

declare @flag int,@no varchar(20),@return int
--先为变量赋值
--set @flag=0...
select @return = search1(@flag,@no)

我没明白,是要写函数的代码还是写调用的代码?调用方法上面已写。

② 在SQL中怎样调用自定义函数

在select后跟你的自定义函数就可以。

mysql中用select调用自带的now()函数:
mysql> select now();
然后mysql就会返回当前的时间。

③ sql 创建函数

--测试环境mssql2008
--思路,按逗号拆分字符串再行列转换
--用CLR效果更好

--1.建表
CreatetableT
(
pkqvarchar(200)
)

--2.插入数据
insertintoTvalues('4井,0井,0井,0井,0井,0井,,,,,,,,,,')
insertintoTvalues('旷,0井,休,,,0井,0井,,,0井,,,,,,,,,,8井,4井,0井,0井,0井,0井,0井,8井,4井')
insertintoTvalues('旷,0井,休,0井,0井,0井,休,休,休,休,0井,0井,休,8井,4井')

--3.创建字符串拆分函数(用C#创建CLR函数效果会更好)
CreateFunctionf_split1(@SourceSqlVarchar(8000),@StrSeprateVarchar(2))
Returns@tempTable(idIntIdentity(1,1),colVarchar(100))
As
begin
Declare@chasVarchar(100)
Set@SourceSql=@SourceSql+@StrSeprate
While(@SourceSql<>'')
Begin
Set@ch=left(@SourceSql,Charindex(@StrSeprate,@SourceSql,1)-1)
Insert@temp(col)Values(@ch)
Set@SourceSql=Stuff(@SourceSql,1,Charindex(@StrSeprate,@SourceSql,1),'')
End
Return
End

--3.查询
select
[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],
[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],
[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31]
from
(
SelectROW_NUMBER()over(orderbygetdate())ASRn,*
fromT
)Souterapplydbo.f_split1(pkq,',')
pivot
(
max(col)
foridin
(
[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],
[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],
[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31]
)
)P

--4.效果

④ 组态王与SQL 连接的问题,SQLinsert的函数如何用

sql中insert函数的用法如下:
INSERT(str,pos,len,newstr)
返回字符串str的子字符串的开始位置pos和len个字符长的字符串用newstr取代。返回原始字符串,如果pos的字符串的长度内。如果len不是在剩下的字符串的长度,其余替换的字符串从位置pos。返回NULL,如果任何参数是NULL。
举例:
SQL> SELECT INSERT('Quadratic', 3, 4, 'What');
+---------------------------------------------------------+
| INSERT('Quadratic', 3, 4, 'What') |
+---------------------------------------------------------+
| QuWhattic |
+---------------------------------------------------------+
1 row in set (0.00 sec)

⑤ 什么是SQL自定义函数

Create
Function
myFunc(@param1
int,@param2
varchar(50))
returns
int
as
begin
......
RETURN
0
end
类似这样自己建的函数,就是SQL自定义函数,可以自定义参数和返回值的,能够在查询语句中使用的。
像max(),min(),getdate(),newid()这些就是系统函数了。

⑥ SQL查询 字段加函数

这个不行。SQL语句要求查询中,必须是字段名,你这里换成拼音后,就不是表的字段了,必然错误。如果实在要这样做,你只能修改表的定义,把这个字段修改为拼音。

⑦ 在数据表中添加一个字段的SQL语句怎么写

通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数
增加字段: alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0
alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0
alter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0
alter table [表名] add 字段名 double default 0 增加数字字段,双精度型,缺省值为0
alter table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0
alter table [表名] add 字段名 text [null] 增加备注型字段,[null]可选参数

alter table [表名] add 字段名 memo [null] 增加备注型字段,[null]可选参数

alter table [表名] add 字段名 varchar(N) [null] 增加变长文本型字段大小为N(1~255)

alter table [表名] add 字段名 char [null] 增加定长文本型字段大小固定为255

alter table [表名] add 字段名 Datetime default 函数增加日期型字段,其中函数可以是now(),date()等,表示缺省值

(上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)

删除字段: alter table [表名] drop 字段名

修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)

删除表: drop table [表名]

创建表:

sql="CREATE TABLE [表名] ([字段1,并设置为主键] int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&

"[字段2] varchar(50),"&

"[字段3] single default 0,"&

"[字段4] varchar(100) null,"&

"[字段5] smallint default 0,"&

"[字段6] int default 0,"&

"[字段7] date default date(),"&

"[字段8] int default 1)"

conn.execute sql

有null 的表示字段允许零长

⑧ SQL 中UPDATE用法

Update是一个数据库SQL语法用语,用途是更新表中原有数据,单独使用时使用where匹配字段。

语法为:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

例如:Update table_name Set column_name = new_value Where column_name = some_value

(8)sql新增函数扩展阅读

update使用注意事项:

1、sp_updatestats可以更新统计信息到最新。

2、低内存会导致未被客户端连接的查询计划被清除。

3、修改表结构,修改索引后,查询计划会被清除,可以再修改后运行几遍查询。

4、使用update时候,order by 会影响查询速度,where中使用函数则会调用筛选器进行扫描,扫描表要尽量避免。

参考资料来源:网络—update

⑨ SQL 自定义函数中不能使用insert update之类的语句吗

不单MSSQL,包括其他关系数据库在内都不允许单独一条SQL语句内同时更新(Update记录和追加(Insert)记录,但是使用T-SQL在存储过程或自定义函数里等可以使用IF流程,根据不同的条件执行不同的操作。例如:
CREATE PROCEDURE myPro1 (@TaskID int) ASif exists(select 1 from paiche where TaskID=@TaskID) update paiche set qty=col*1.1 else begin insert into paiche (TaskID,qty) values(@TaskID,100) end