假设我有以下简单的表变量:
declare @databases table
(
DatabaseID int,
Name varchar(15),
Server varchar(15)
)
-- insert a bunch rows into @databases
Run Code Online (Sandbox Code Playgroud)
如果我想遍历行,是声明和使用游标我唯一的选择吗?还有另外一种方法吗?
我当前的SQL语法是这样的
Declare CursorName CURSOR FOR
Select Query
Run Code Online (Sandbox Code Playgroud)
现在,选择查询将包含If-Else条件.
If @Parameter1 is NULL
BEGIN
Select-Query1
END
ELSE
BEGIN
Select-Query2
END
Run Code Online (Sandbox Code Playgroud)
如何在SQL Server中的游标内写入第二个If-Else语句?
请帮忙!让我知道我的意见.!!
我的原始查询
Create Table #TempTable(PlanID BIGINT,PlanName NVARCHAR(50),InsuranceCompany Nvarchar(100),CurrentBalance DECIMAL(14,2),
[30DaysBalance] DECIMAL(14,2),[60DaysBalance] DECIMAL(14,2),[90DaysBalance] Decimal(14,2),
[120DaysBalance] DECIMAL(14,2),[150DaysBalance] Decimal(14,2),CurrentDaysPlanAmount DECIMAL(14,2),
[30DaysPlanAmount] DECIMAL(14,2),[60DaysPlanAmount] DECIMAL(14,2),[90DaysPlanAmount] Decimal(14,2),
[120DaysPlanAmount] DECIMAL(14,2),[150DaysPlanAmount] Decimal(14,2),StartDate DateTime,EndDate DateTime
)
Run Code Online (Sandbox Code Playgroud)
开始
Declare @BillID BIGINT,@PatientID BIGINT,@BillDetailID BIGINT,@SendDt DateTime
Declare Cursor_Claim_PlanAgingReport Cursor
For Select Bill.BillID,Bill.PatientID,BillDetail.BillDetailID,Claim.SendDt From Bill Inner Join
BillDetail On Bill.BillID = BillDetail.BillID Inner Join
Claim on Bill.BillID = Claim.BillID Left Outer Join …Run Code Online (Sandbox Code Playgroud) 我的目标是,如果我有这个:
colmuns c1 | c2 | c3 | c4 | c5 | n..
row1 a | a | a | a | a |
row2 b | b | b | b | b |
rowN...
Run Code Online (Sandbox Code Playgroud)
我想做一个会返回的查询
myCol
aaaaa
bbbbb
nnnnn...
Run Code Online (Sandbox Code Playgroud)
我知道我能做到这一点
select t2.id, (
select *
from mytable t1
where t1.id= t2.id
for xml path('')) as row
from mytable t2
Run Code Online (Sandbox Code Playgroud)
并且它会将包含许多列的整行放入我想要的一列中
现在,如何过滤掉xml标签?
或者还有其他解决方案吗?
编辑 列可能为null不是varchar,可以是int,varchar,date等