我们知道,使用如下的语句:
SELECT '4546465' AS MYDATA
可以获得一个固定的值'4546465'作为MYDATA列。现在有个疑问:
是否有类似的语句,让我们可以获得一列固定的值作为MYDATA列?
打个比方,我们采用SELECT ('4546465','4486545','876464') AS MYDATA,然后我们获得如下数据:
MYDATA
'4546465'
'4486545'
'876464'谢谢!

解决方案 »

  1.   


    create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
    returns @temp table(a varchar(100))
    /*--实现split功能 的函数
    --date    :2005-4-20
    --Author :Domino
    */
    as 
    begin
        declare @i int
        set @SourceSql=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@SourceSql)
        while @i>=1
        begin
            insert @temp values(left(@SourceSql,@i-1))
            set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql<>'\'
           insert @temp values(@SourceSql)
        return 
    end
    select * from dbo.f_split('山东:济南:山东:济南',':')select top 1 * from f_split('山东:济南',':')
      

  2.   

    SELECT ('4546465') AS MYDATA union all
    SELECT ('4486545') AS MYDATA union all
    SELECT ('4486545') AS MYDATA