我有以下问题:
在练习模式调用课程中创建一个新表.它具有以下属性.
CourseRegNumber - 这将是1000到9999之间的整数.此列每次自动增加1.这将是主要关键.
StudentID - 整数介于1000和999,999之间.不能为空.
我遇到麻烦的是编写StudentID部分.
这就是我所拥有的StudentID INT (1000,1) NOT NULL.
但是我必须在INT和(1000,1)之间有一些东西,我不知道那里有什么.
我有这样的声明:
declare @max int
@max = 1
SELECT @max, t1.col1, t1.col2
FROM table1 t1
Run Code Online (Sandbox Code Playgroud)
这会给我结果:
1 a a
1 b b
1 c c
Run Code Online (Sandbox Code Playgroud)
我希望得到这样的结果
1 a a
2 b b
3 c c
Run Code Online (Sandbox Code Playgroud)
我怎样才能达到这个效果?
我试着这样做:
@max = 1
SELECT @max, t1.col1, t1.col2
FROM table1 t1
WHERE @max = @max + 1
Run Code Online (Sandbox Code Playgroud)
但没有成功,有人可以帮助我吗?谢谢!
PS.我必须使用@max作为变量 - 我不能使用Identity或AUTOINCREMENT列
我编写了一个存储过程来将未来日期(不包括Sat和Sun)插入到永久表中.例程只使用一个临时表.这篇文章的目的不是批评存储过程.虽然,我确信它可以改进.但是,这篇文章的目的是分析为什么存储过程在一组情况下而不是其他情况下调用时会抛出这些错误.
1 - 这是我收到的错误
Msg 207, Level 16, State 1, Procedure MAKE_FUTURE_DATES, Line 25
Invalid column name 'tdate'.
Msg 207, Level 16, State 1, Procedure MAKE_FUTURE_DATES, Line 31
Invalid column name 'wday'.
Run Code Online (Sandbox Code Playgroud)
2 - 这是存储过程
ALTER PROCEDURE [dbo].[MAKE_FUTURE_DATES] (@STARTDATE DATE)
AS
BEGIN
-- We need to populate FUTURE_DATES (table) with forward looking dates (week days only)
-- We do not consider/exclude holidays here. We just exclude Sat/Suns
-- Temp table to hold the dates and days of the week
CREATE …Run Code Online (Sandbox Code Playgroud) 我怎么转这个:

还有这个:

进入这个:

在SQL Server 2008 R2中?
我正在构建一个查询,其中选择的列数不固定,所以我生成我的查询运行时并在存储过程中执行它.但我现在卡住了,因为我想根据记录的数量从我的查询中执行一些操作,但我不知道如何从动态查询中获取记录数量的计数,其中我的查询就像
DECLARE @RowCount AS numeric(18,0)
DECLARE @SQL AS VARCHAR(MAX)
Set @SQL ='Select Count(*) From ((Select Col1,Col2,Col3,Col4 From Table1)) as rowcount'
Exec(@SQL)
Set @RowCount = ????..
Run Code Online (Sandbox Code Playgroud)
你能告诉我如何从dynaimc查询得到记录数
我正在尝试使用文本字符串并从中创建一个唯一的数值,我没有任何运气.
例如,我有用户名(第一个和最后一个)和生日.我试过取这些值并将它们转换为varbinary,它确实从数据中给出了一个数值,但它并不是唯一的.在大约700条记录中,我将获得至少100个重复的数值,但用于生成数字的名字,姓氏和生日的文本是不同的.
这是我一直在尝试的一些代码:
SELECT CONVERT(VARCHAR(300), CONVERT(BIGINT,(CONVERT(VARBINARY, SE.FirstName) + CONVERT(VARBINARY, SE.BirthDate) ))) FROM ELIGIBILITY SE
Run Code Online (Sandbox Code Playgroud)
如果我使用该代码并转换以下数据,则结果为3530884780910457344.因此,从此唯一数据生成相同的数字:
David 12/03/1952
Janice 12/23/1952
Michael 03/24/1952
Mark 12/23/1952
Run Code Online (Sandbox Code Playgroud)
我正在寻找某种方式,越简单越好,从这些数据中获取这些值并生成唯一的数值.我之所以需要使用这些值作为输入是因为我试图避免在将来创建重复项,并且能够根据公式预测数值.这就是NewID()不适合我的原因.
我正在解决我的项目并遇到一些问题,我搜索了它,但找不到完整的学习资源,我需要的是使用我的Java程序将图像存储在SQL Server数据库中,并且需要返回检索,图像尺寸不大,介于30到50 K之间,我可以使用toolKit中的getImage()方法从我的磁盘加载图像
Image imm = Toolkit.getDefaultToolkit().getImage("URl");
Run Code Online (Sandbox Code Playgroud)
,但我不知道如何将该图像转换为二进制格式并存储在数据库中,然后检索从数据库返回.我想通过查看几个站点将它存储在VarBinary中,我发现SQL Server中的图像类型很快就会退回.
我想通过从我的本地机器执行PS脚本来做到这一点..其中DB服务器是远程机器.
在CSV文件中,我没有指定任何列名.(只有逗号分隔和对齐o/p).
我不想用 BULK INSERT
我正在将SQL数据导出到Excel.我目前使用的代码是:
DataTable dt = new DataTable();
// Create sql connection string
string conString = "Data Source=DELL\\SQLSERVER1;Trusted_Connection=True;DATABASE=Zelen;CONNECTION RESET=FALSE";
SqlConnection sqlCon = new SqlConnection(conString);
sqlCon.Open();
SqlDataAdapter da = new SqlDataAdapter("select LocalSKU,ItemName, QOH,Price,Discontinued,CAST(Barcode As varchar(25)) As Barcode,Integer2,Integer3,ISNULL(SalePrice,0.0000)AS SalePrice,SaleOn,ISNULL(Price2,0.0000)AS Price2 from dbo.Inventory", sqlCon);
System.Data.DataTable dtMainSQLData = new System.Data.DataTable();
da.Fill(dtMainSQLData);
DataColumnCollection dcCollection = dtMainSQLData.Columns;
// Export Data into EXCEL Sheet
Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
ExcelApp.Application.Workbooks.Add(Type.Missing);
int i = 1;
int j = 1;
int s = 1;
//header row
foreach (DataColumn col in dtMainSQLData.Columns) …Run Code Online (Sandbox Code Playgroud) 我如何将所有2个查询联合起来,但在将所有查询合并之前对每个查询进行排序?我希望在结果按总和([docextprice])desc命令后的每一年获得前20名的结果
这是我现在拥有的一个例子:
SELECT top 20 gm.[partnum]
,p.PartDescription
,sum([docextprice])[docextprice]
,year([invoicedate])year
,'Eco Surfaces' product
FROM dbo.gm gm
JOIN dbo.Part p on gm.partnum = p.PartNum
WHERE gm.company = 'EII' and [invoicedate] BETWEEN '20100809' and '20101231'
and p.ClassID in ('mpe')
GROUP BY year([invoicedate]),gm.[partnum],p.PartDescription
ORDER BY year([invoicedate]),sum([docextprice]) desc
UNION ALL
SELECT top 20 gm.[partnum]
,p.PartDescription
--,gm.[prodcode]
--,p.ClassID
,sum([docextprice])[docextprice]
,year([invoicedate])year
,'Eco Surfaces' product
FROM dbo.gm gm
JOIN dbo.Part p on gm.partnum = p.PartNum
WHERE gm.company = 'EII' and [invoicedate] BETWEEN '20110101' and '20111231'
and p.ClassID in …Run Code Online (Sandbox Code Playgroud) sql ×6
sql-server ×3
t-sql ×3
binary-data ×1
c# ×1
csv ×1
dynamic ×1
export ×1
image ×1
java ×1
pivot ×1
powershell ×1
runtime.exec ×1
swing ×1