所以我在这样一张桌子上工作:
Sku ProductCode Product Id
01 11011 null
02 11021 null
03 11021 null
04 11011 null
05 11031 null
06 11041 null
Run Code Online (Sandbox Code Playgroud)
我想像这样更新产品 ID:
Sku ProductCode Product Id
01 11011 01
02 11021 02
03 11021 02
04 11011 01
05 11031 03
06 11041 04
Run Code Online (Sandbox Code Playgroud)
我正在使用这个查询:
with upd
as
(
SELECT *, ROW_NUMBER() OVER (PARTITION BY [Product Code] ORDER BY [Product Code]) AS rnk
FROM temp
)
UPDATE upd
SET ProductId = rnk
Run Code Online (Sandbox Code Playgroud)
基本上我只想在它不同时才计数。不使用任何函数或过程的任何想法?连续语句很好,更多列也是如此。
我的列包含数据的空格:
example:| 鱼| 如何更新列,以便我的结果为:| Fish | ?
在oracle我可以修剪列:
update Example set column1 = trim(column1)
Run Code Online (Sandbox Code Playgroud)
我谷歌它,我注意到ASE没有supoort修剪.
有没有办法结合sql中2个select语句的结果?(像Union运营商那样 - 但Union仅适用于相同数量和类型的列)
我想做点什么
SELECT * FROM JOBS j
UNION
SELECT COUNT(fj.Id_Filter) FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job
Run Code Online (Sandbox Code Playgroud)
但它不适用于UNION
我有SQL查询:
INSERT into ProjectFiles (Id,ProjectId,Index) VALUES (@Id,@ProjectId,@Index)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试插入对象时,它会抛出异常:
"索引"附近的语法不正确.如果这是作为表提示的一部分,则现在需要A WITH关键字和括号.有关正确的语法,请参阅SQL Server联机丛书
我认为这是关于Index,因为sql有命令index.我怎么能对sql说,这是我的专栏?
我是sql的新手,遇到了一个小问题.我有一个像这样的查询:
select cust_id, count(1) from all_customers
group by cust_id
having count(1)>4;
Run Code Online (Sandbox Code Playgroud)
那个查询给了我想要的结果.
我需要对all_customers表中的所有客户进行新查询,并从上面的查询中排除我刚刚得到的结果.我尝试过这样的事情:
select * from all_customers
where cust_id NOT IN
(
select cust_id, count(1) from all_customers
group by cust_id
having count(1)>4
)
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误消息too many values.我究竟做错了什么?
我有两个整数列,我希望选择具有特定值对的行.我可以使用哪种SQL语法?例如,IN如果IN支持这种语法,使用它可能看起来像这样:
select *
from myTable
where value1, value2 in ((2,3), (3,4), (2,5), (3,6))
Run Code Online (Sandbox Code Playgroud)
用它来选择那些行
value1 == 2 and value2 == 3 or value1==3 and value2==4 or 2/5 or 3/6.
我正在使用专有的SQL系统,因此首选基本SQL.或者如果没有,那么在某些标准SQL中使用一个语句也会很有用.
执行下面的代码后,我得到一个ORA-25155错误
SELECT p.prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
FROM products p NATURAL JOIN sales s NATURAL JOIN customer c
WHERE prod_id = 148;
Run Code Online (Sandbox Code Playgroud) 我有一个select statentnt,它会返回1000个结果,使用3到4个表连接.我的要求是在结果集中有标识列.谁可以帮我这个事.
例如:
Result :
id name
-- ----
001 xxx
002 yyy
003 zzz
My requirment :
Rowid id name
1 -- ----
2 001 xxx
3 002 yyy
4 003 zzz
Run Code Online (Sandbox Code Playgroud)
和sql中的Row_number一样,我们在sybase中有什么内容吗?
从表中删除重复记录后,我想更新表的 Identity 列,其连续编号从 1 开始。这是我的表详细信息
id(identity(1,1)),
EmployeeID(int),
Punch_Time(datetime),
Deviceid(int)
Run Code Online (Sandbox Code Playgroud)

我需要通过存储过程执行此操作。当我在存储过程中尝试以下语句时
DECLARE @myVar int
SET @myVar = 0
set identity_insert TempTrans_Raw# ON
UPDATE TempTrans_Raw# SET @myvar = Id = @myVar + 1
set identity_insert TempTrans_Raw# off
Run Code Online (Sandbox Code Playgroud)
出现错误,例如...无法更新标识列“Id”任何人请建议如何使用从 1 开始的连续编号来更新该表的标识列。
致力于积分兑换应用.我有一个查询返回点范围如下:
Point
-----
50
100
150
Run Code Online (Sandbox Code Playgroud)
我有一个累积积分的局部变量.如果我有65分,那么我只能兑换50分.如果我有110,那么我将能够兑换100,依此类推.
我尝试使用select case&between但它没有正确使用.
请帮助.
sql ×8
sql-server ×2
sybase ×2
sybase-ase ×2
asp.net-mvc ×1
c# ×1
derby ×1
oracle11g ×1
select ×1
t-sql ×1