我有table - config.架构:
config_name | config_value
我想在一个查询中更新多个记录.我试着这样:
UPDATE config
SET t1.config_value = 'value'
, t2.config_value = 'value2'
WHERE t1.config_name = 'name1'
AND t2.config_name = 'name2';
Run Code Online (Sandbox Code Playgroud)
但那个查询错了:(
你能帮助我吗?
当我结合随机整数生成时,CHOOSE()我得到了意想不到的NULL值.
以下应该只返回字母a- e而是NULL也包含在值中:
查询:
;WITH cte AS (SELECT 1 RN
UNION ALL
SELECT RN + 1
FROM cte
WHERE RN < 100)
SELECT DISTINCT CHOOSE(1 + ABS(CRYPT_GEN_RANDOM(8)%5),'a','b','c','d','e','f')
FROM cte
Run Code Online (Sandbox Code Playgroud)
结果:
NULL
a
b
c
d
e
Run Code Online (Sandbox Code Playgroud)
预期成绩:
a
b
c
d
e
Run Code Online (Sandbox Code Playgroud)
随机数生成按预期工作,仅返回值1-5:
;WITH cte AS (SELECT 1 RN
UNION ALL
SELECT RN + 1
FROM cte
WHERE RN < 50)
SELECT 1 + ABS(CRYPT_GEN_RANDOM(8)%5)
FROM cte
Run Code Online (Sandbox Code Playgroud)
演示:SQL小提琴
CHOOSE() 如下工作(索引从1开始): …
我想使用 case 语句更新表,查询是这样的......
select case(@columnname) when 'name1' then
begin
update table
set
pay1=pay1* 100
pay2=pay2*20
pay3=pay3* 100
end
when 'name2' then
begin
update table
set
pay2=pay2*20
pay3=pay3* 100
end
when 'name3' then
begin
update table
set
pay3=pay3* 100
end
end
Run Code Online (Sandbox Code Playgroud)
你能告诉正确的逻辑来使用case语句完成查询吗
我有一个会计树,在源中存储了缩进/空格:
Income
Revenue
IAP
Ads
Other-Income
Expenses
Developers
In-house
Contractors
Advertising
Other Expenses
Run Code Online (Sandbox Code Playgroud)
有固定数量的级别,所以我想通过使用3个字段来平整层次结构(实际数据有6个级别,例如简化):
L1 L2 L3
Income
Income Revenue
Income Revenue IAP
Income Revenue Ads
Income Other-Income
Expenses Developers In-house
... etc
Run Code Online (Sandbox Code Playgroud)
我可以通过检查帐户名称前的空格数来完成此操作:
for rownum in range(6,ws.max_row+1):
accountName = str(ws.cell(row=rownum,column=1).value)
indent = len(accountName) - len(accountName.lstrip(' '))
if indent == 0:
l1 = accountName
l2 = ''
l3 = ''
elif indent == 3:
l2 = accountName
l3 = ''
else:
l3 = accountName
w.writerow([l1,l2,l3])
Run Code Online (Sandbox Code Playgroud)
是否有更灵活的方法来实现这一点,基于当前行与前一行相比的缩进而不是假设每个级别总是3个空格?L1将始终没有缩进,我们可以相信较低级别将比其父级缩进更多,但每个级别可能不总是3个空格.
更新,最后以此作为逻辑的核心,因为我最终想要带有内容的帐户列表,使用缩进来决定是否重置,追加或弹出列表似乎是最简单的:
if …Run Code Online (Sandbox Code Playgroud)