取出表A中Id为两位数的记录 取出表A中Id为四位数且前两位跟传进来的参数一样的记录select * from A where len(id)=2
select * from A where len(id)=4 and left(id,2)=参数 拜托各位再帮忙把上面的两条sql写成个存储过程 参数 是ID
我的ID是01,0101,010101这样的分3级
如果传进来的ID参数ID=01 就找到0101 如果是0101 就找到010101 拜托了
select * from A where len(id)=4 and left(id,2)=参数 拜托各位再帮忙把上面的两条sql写成个存储过程 参数 是ID
我的ID是01,0101,010101这样的分3级
如果传进来的ID参数ID=01 就找到0101 如果是0101 就找到010101 拜托了
解决方案 »
- 时间函数问题
- 使用pivot后提示for附近有语法错误
- 求助mssql存储过程转化为mysql存储过程,小弟急啊!
- 大家都来帮一个忙,怎么把'0:00:00'插入字段为日期时间型的列中???
- SQL Server 2005 导入Excel文件中的数据,其中Excel一列(同时含数值型和文本型数据)对应数据库表的一个字段(nvarchar(255)),只能导入数值型数据?
- 关于MS SQLServer2K下e-sql的预编译问题
- 请大家帮忙推荐一下有关dts和数据库复制的资料,谢谢!!!
- 还原备份出错
- 怎样让一个确定表和一个非确定表建立联系?
- 请问 sql如何写?
- MS-SQL 2005备份问题,大家帮忙看看!
- sql
@s int
as
begin
select * from A where len(id)=2
union all
select * from A where len(id)=4 and left(id,2)=@s
end
@id varchar(20)
as
select * from [Table] where len(id)>len(@id) and left(id,2)=@id
as
begin
select * from tb
where len(id) = len(@id)+2 and left(id,len(@id))=@id end
(
@id varchar(20)
)
as
select * from [Table] where len(id)>len(@id) and left(id,2)=@id
@id varchar(20)
as
select * from [Table] where len(id) between len(@id) and len(@id)+3 and left(id,2)=@id
as
begin
select * from tb where len(id)=len(@s)+2 and left(id,len(@s))=@s
end
@s int
as
begin
select * from A where len(id)=len(@s)
union all
select * from A where len(id)=len(@s)+2 and left(id,2)=@s
end
CREATE PROC sp_test(@ID INT)
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM A WHERE ID=@ID OR (LEN(ID)=4 AND LEFT(LTRIM(ID),2)=@ID) OR (LEN(ID)=6 AND LEFT(LTRIM(ID),2)=@ID)
SET NOCOUNT OFF
END