我一直在学习函数和存储过程很长一段时间,但我不知道为什么以及何时应该使用函数或存储过程.他们看起来和我一样,也许是因为我对此有点新手.
有人可以告诉我为什么吗?
我怎样才能实现SQL的的等价物IN和NOT IN?
我有一个包含所需值的列表.这是场景:
df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']
# pseudo-code:
df[df['countries'] not in countries]
Run Code Online (Sandbox Code Playgroud)
我目前的做法如下:
df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})
# IN
df.merge(countries,how='inner',on='countries')
# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个可怕的kludge.任何人都可以改进吗?
我需要检查上次功能何时更改.我知道如何检查创建日期(它位于SQL Server Management Studio的函数属性窗口中).
我发现在SQL Server 2000中无法检查修改日期(请看这篇文章:是否可以确定SQL Server 2000中最后一次修改存储过程的时间?)
是否可以在SQL Server 2008中进行检查?MS是否在系统表中添加了一些允许检查它的新功能?
stored-procedures sql-function sql-server-2008 sql-server-2008-r2
我在看MySQL存储过程和函数.真正的区别是什么?
它们似乎相似,但功能有更多限制.
我可能错了,但似乎存储过程可以做所有事情,而存储功能可以做得更多.为什么/何时使用程序与函数?
我需要找出数据库中是否存在函数,以便我可以删除它并再次创建它.它应该基本上类似于我用于存储过程的以下代码:
IF EXISTS (
SELECT *
FROM dbo.sysobjects
WHERE id = OBJECT_ID(N'[dbo].[SP_TEST]')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1 )
Run Code Online (Sandbox Code Playgroud) 我可以在MySQL的同一个选择查询中将多个列选择为多个变量吗?
例如:
DECLARE iId INT(20);
DECLARE dCreate DATETIME;
SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;
Run Code Online (Sandbox Code Playgroud)
这个的正确语法是什么?
表值函数和视图之间有什么区别?是否有一些你可以做的事情,那是另一个很难或不可能做到的事情?或者差异在于效率?
我必须在数据库中执行循环.这只是一次性要求.执行该函数后,我现在正在删除该函数.
有没有什么好的方法来创建临时/一次性功能?
我创建了一个表值返回函数,它返回一个表.这是我的功能调用如下
SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006)
Run Code Online (Sandbox Code Playgroud)
它对我来说工作正常,现在我想在一个选择的语句中使用这个函数调用,所以我可以传递16哪个基本上是employeeId动态的.
所以我决定使用内部连接与该函数返回的表.像这样
SELECT * FROM Employee as E
INNER JOIN dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC ON TC.EmployeeId=E.EmployeeId
Run Code Online (Sandbox Code Playgroud)
但是现在我怎么能一个接一个地传递16动态值employeeId.
我有一个包含以下代码的sql函数:
DECLARE @CodeNameString varchar(100)
SELECT CodeName FROM AccountCodes ORDER BY Sort
Run Code Online (Sandbox Code Playgroud)
我需要将select查询中的所有结果连接到CodeNameString中.
显然,C#代码中的FOREACH循环会这样做,但我如何在SQL中执行此操作?
sql-function ×10
sql ×6
sql-server ×5
t-sql ×3
mysql ×2
dataframe ×1
pandas ×1
postgresql ×1
python ×1
sql-view ×1