SQL:动态回合

时间:2017-09-12 08:09:12

标签: sql oracle rounding

我想对我的SQL语句产生的值进行舍入,但是动态。

我实际上忘记了这个的官方用语,但你可以用这个解释理解它:

129.12144214 --> 129
0.000052142124 --> 0.0000521
2.213131 --> 2.21

在这种情况下,非零小数的数量当然是3。<​​/ p>

我怎样才能在SQL中执行此操作?

1 个答案:

答案 0 :(得分:1)

按照这些步骤,您应该得到您想要的结果(例如129.12144214):

  • 获取log10:2,11099836751079
  • 截取小数: 2
  • 将您的129,......与(10 ^ 2 )分开:1.29121442
  • 舍入到2位小数:1.29
  • 乘以(10 ^ 2 ):129

这个想法是将每个值带到0到10之间的值,然后舍入到两位小数,然后将他带回原来的#34;范围&#34;。

在SQL中它有类似的东西(好吧,我在SQL Server中完成了它,但命令应该是相同的):

 navigator.mediaDevices.getUserMedia({
        audio: true,
        video: {width: 320}
    })
        .then(function (mediaStream) {
            var connectOptions = {
                name: roomName,
                logLevel: 'off',
                tracks: mediaStream.getTracks()
            };
            return Video.connect(data.token, connectOptions);
        })
        .then(roomJoined, function (error) {
            log('Could not connect to Twilio: ' + error.message);
        });


    // Bind button to leave Room.
    document.getElementById('button-leave').onclick = function () {
        log('Leaving room...');
        leaveRoomIfJoined();
    };
});

// Successfully connected!
function roomJoined(room) {
    //To collect the timing data for billing purposes
    $.post('/classrooms/logs/joinedroom/' + lessonId + '/' + identity, function (data) {
        console.log(data);
    });
    activeRoom = room;

    log("Joined" + room);
    log(new Date().getMinutes());

    // Attach LocalParticipant's Tracks, if not already attached.
    // var previewContainer = document.getElementById('local-media');
    // if (!previewContainer.querySelector('video')) {
    //     attachParticipantTracks(room.localParticipant, previewContainer);
    // }

    // Attach the Tracks of the Room's Participants.
    room.participants.forEach(function (participant) {
        log("Already in Room: '" + participant.identity + "'");
        var previewContainer = document.getElementById('remote-media');
        attachParticipantTracks(participant, previewContainer);
    });

    // When a Participant joins the Room, log the event.
    room.on('participantConnected', function (participant) {
        console.log(participant);
        log("Joining: '" + participant.identity + "'");
    });

    // When a Participant adds a Track, attach it to the DOM.
    room.on('trackAdded', function (track, participant) {
        log(participant.identity + " added track: " + track.kind);
        var previewContainer = document.getElementById('remote-media');
        var h = previewContainer.offsetWidth * 0.75 + "px";
        if (participant.identity === classroom.teacher._id) {
            attachTracks([track], previewContainer);

            previewContainer.style.height = h;

            // } else {
            //     if(track.kind == 'audio') {
            //         console.log(typeof(track.kind));
            //         attachTracks([track], previewContainer);
            //     }
        }
    });

    // When a Participant removes a Track, detach it from the DOM.
    room.on('trackRemoved', function (track, participant) {
        log(participant.identity + " removed track: " + track.kind);
        detachTracks([track]);
    });

    // When a Participant leaves the Room, detach its Tracks.
    room.on('participantDisconnected', function (participant) {
        log("Participant '" + participant.identity + "' left the room");
        log(new Date().getMinutes());
        detachParticipantTracks(participant);
    });
    $('#toggle-video').click(function(e){
        console.log(room.localParticipant.videoTracks);
        // room.localParticipant.videoTracks.disable();
    });
    // Once the LocalParticipant leaves the room, detach the Tracks
    // of all Participants, including that of the LocalParticipant.
    room.on('disconnected', function () {
        $.post('/classrooms/logs/leftroom/' + lessonId + '/' + identity, function (data) {
            detachParticipantTracks(room.localParticipant);
            room.participants.forEach(detachParticipantTracks);
            activeRoom = null;
            // document.getElementById('button-join').style.display = 'inline';
            document.getElementById('button-leave').style.display = 'none';
        });
        log('Left');
        log(new Date().getMinutes());
        detachParticipantTracks(room.localParticipant);
        room.participants.forEach(detachParticipantTracks);
        activeRoom = null;
        // document.getElementById('button-join').style.display = 'inline';
        document.getElementById('button-leave').style.display = 'none';
    });
}